pub(crate) fn make_rgb_to_gray<T: Copy + Default + PointeeSizeExpressible + Send + Sync + 'static, const BUCKET: usize>(
src_layout: Layout,
dst_layout: Layout,
trc: ToneReproductionRgbToGray<T, BUCKET>,
weights: Vector3f,
gamma_lut: usize,
bit_depth: usize,
) -> Result<Arc<dyn TransformExecutor<T> + Send + Sync>, CmsError>where
u32: AsPrimitive<T>,