use std::ffi::{c_longlong, c_void};
#[repr(C)]
#[derive(Debug, Clone)]
pub struct MemRef<const N_DIMS: usize> {
pub allocated: *mut c_void,
aligned: *mut c_void,
offset: c_longlong,
shape: [c_longlong; N_DIMS],
stride: [c_longlong; N_DIMS],
}
pub type LineMemRef = MemRef<1>;
impl LineMemRef {
pub fn new<T>(pointer: &mut [T]) -> Self {
let len = pointer.len();
let pointer = pointer.as_mut_ptr() as *mut c_void;
Self {
allocated: pointer,
aligned: pointer,
offset: 0,
shape: [len as c_longlong],
stride: [1],
}
}
}