use core::marker::PhantomData;
pub unsafe trait BigarrayElt: Copy {
const KIND: i32;
}
macro_rules! make_kind {
($t:ty, $k:ident) => {
unsafe impl BigarrayElt for $t {
const KIND: i32 = ocaml_sys::bigarray::Kind::$k as i32;
}
};
}
make_kind!(f32, FLOAT32);
make_kind!(f64, FLOAT64);
make_kind!(i8, SINT8);
make_kind!(u8, UINT8);
make_kind!(i16, SINT16);
make_kind!(u16, UINT16);
make_kind!(i32, INT32);
make_kind!(i64, INT64);
make_kind!(isize, NATIVE_INT);
make_kind!(char, CHAR);
pub struct Array1<A: BigarrayElt> {
_marker: PhantomData<A>,
}