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