feat(sharedptr): add size to slice type information

This commit is contained in:
2024-04-29 15:29:28 +02:00
parent 5cd37dfc93
commit f8d497f3e1

View File

@@ -7,7 +7,7 @@ use std::{
use crate::allocator::ALLOCATOR; use crate::allocator::ALLOCATOR;
#[derive(Debug)] #[derive(Debug)]
pub struct SharedPtr<'a, const N: usize>(&'a mut [u8]); pub struct SharedPtr<'a, const N: usize>(&'a mut [u8; N]);
impl<const N: usize> SharedPtr<'_, N> { impl<const N: usize> SharedPtr<'_, N> {
pub fn new() -> Option<Self> { pub fn new() -> Option<Self> {
@@ -18,7 +18,7 @@ impl<const N: usize> SharedPtr<'_, N> {
slice::from_raw_parts_mut(buf, 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 { pub fn get_offset(&self) -> usize {
@@ -31,7 +31,7 @@ impl<const N: usize> SharedPtr<'_, N> {
} }
impl<'a, const N: usize> Deref for SharedPtr<'a, 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 { fn deref(&self) -> &Self::Target {
&self.0 &self.0