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(pointer: *mut u8, len: usize) -> Self {
Self {
allocated: pointer as *mut c_void,
aligned: pointer as *mut c_void,
offset: 0,
shape: [len as c_longlong],
stride: [1],
}
}
}