j2k-cuda-runtime 0.10.0

CUDA codec engine and Driver API runtime for j2k device adapters
use j2k_core::accelerator::GpuAbi;

macro_rules! gpu_slice_bytes {
    ($($(#[$attr:meta])* $name:ident: $ty:ty;)+) => {
        $(
            $(#[$attr])*
            pub(crate) fn $name(values: &[$ty]) -> &[u8] {
                <$ty as GpuAbi>::slice_as_bytes(values)
            }
        )+
    };
}

macro_rules! gpu_slice_bytes_mut {
    ($($(#[$attr:meta])* $name:ident: $ty:ty;)+) => {
        $(
            $(#[$attr])*
            pub(crate) fn $name(values: &mut [$ty]) -> &mut [u8] {
                <$ty as GpuAbi>::slice_as_bytes_mut(values)
            }
        )+
    };
}

gpu_slice_bytes! {
    f32_slice_as_bytes: f32;
    i16_slice_as_bytes: i16;
    #[cfg(test)]
    i32_slice_as_bytes: i32;
}

gpu_slice_bytes_mut! {
    #[cfg(test)]
    f32_slice_as_bytes_mut: f32;
    #[cfg(test)]
    i32_slice_as_bytes_mut: i32;
}