pub(crate) fn make_gray_to_unfused<T: Copy + Default + PointeeSizeExpressible + 'static + Send + Sync, const BUCKET: usize>(
src_layout: Layout,
dst_layout: Layout,
gray_linear: Box<[f32; 65536]>,
red_gamma: Box<[T; 65536]>,
green_gamma: Box<[T; 65536]>,
blue_gamma: Box<[T; 65536]>,
bit_depth: usize,
gamma_lut: usize,
) -> Result<Arc<dyn TransformExecutor<T> + Sync + Send>, CmsError>where
u32: AsPrimitive<T>,