diff --git a/src/sharedptr.rs b/src/sharedptr.rs index d8fdc5e..115d6c6 100644 --- a/src/sharedptr.rs +++ b/src/sharedptr.rs @@ -7,7 +7,7 @@ use std::{ use crate::allocator::ALLOCATOR; #[derive(Debug)] -pub struct SharedPtr<'a, const N: usize>(&'a mut [u8]); +pub struct SharedPtr<'a, const N: usize>(&'a mut [u8; N]); impl SharedPtr<'_, N> { pub fn new() -> Option { @@ -18,7 +18,7 @@ impl SharedPtr<'_, N> { slice::from_raw_parts_mut(buf, N) }; - Some(SharedPtr(buf)) + Some(SharedPtr(buf.try_into().expect("Should never fail"))) } pub fn get_offset(&self) -> usize { @@ -31,7 +31,7 @@ impl SharedPtr<'_, N> { } impl<'a, const N: usize> Deref for SharedPtr<'a, N> { - type Target = &'a mut [u8]; + type Target = &'a mut [u8; N]; fn deref(&self) -> &Self::Target { &self.0