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> {}