bmls/
ptr.rs

1
2#[derive(Copy, Clone)]
3pub struct Ptr<T>(*mut T, usize);
4
5impl<T> Ptr<T> {
6    pub fn new(p: &[T]) -> Self {
7        Self (p.as_ptr() as *mut T, p.len())
8    }
9
10    #[inline]
11    pub fn get_mut(&self) -> &mut [T] {
12        unsafe {
13            std::slice::from_raw_parts_mut(self.0, self.1)
14        }
15    }
16}
17
18unsafe impl<T> Send for Ptr<T> {}
19unsafe impl<T> Sync for Ptr<T> {}