pub struct SlabOrigin<T, L: RawLock = RawMutex, const SLAB_SIZE: usize = DEFAULT_SLAB_ALLOCATOR_SLAB_SIZE, const TRACK_OBJECT_COUNT: bool = false> { /* private fields */ }Expand description
A helper type to store the originating slab allocator for instanced allocations.
This type wraps Option<NonNull<SlabAllocator<...>>> and provides safe Send and Sync
implementations, allowing the containing object to be shared across threads.
Implementations§
Source§impl<T, L: RawLock, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L: RawLock, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
Sourcepub fn set(
&mut self,
origin: NonNull<SlabAllocator<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>>,
)
pub fn set( &mut self, origin: NonNull<SlabAllocator<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>>, )
Sets the origin allocator.
Sourcepub fn get(
&self,
) -> Option<NonNull<SlabAllocator<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>>>
pub fn get( &self, ) -> Option<NonNull<SlabAllocator<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>>>
Gets the origin allocator.
Trait Implementations§
Source§impl<T, L: RawLock, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Default for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L: RawLock, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Default for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L: RawLock + Send, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Send for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L: RawLock + Sync, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Sync for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
Auto Trait Implementations§
impl<T, L, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Freeze for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L = RawSyncMutex, const SLAB_SIZE: usize = DEFAULT_SLAB_ALLOCATOR_SLAB_SIZE, const TRACK_OBJECT_COUNT: bool = false> !RefUnwindSafe for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> Unpin for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L, const SLAB_SIZE: usize, const TRACK_OBJECT_COUNT: bool> UnsafeUnpin for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
impl<T, L = RawSyncMutex, const SLAB_SIZE: usize = DEFAULT_SLAB_ALLOCATOR_SLAB_SIZE, const TRACK_OBJECT_COUNT: bool = false> !UnwindSafe for SlabOrigin<T, L, SLAB_SIZE, TRACK_OBJECT_COUNT>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> PinInit<T> for T
impl<T> PinInit<T> for T
Source§unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
Initializes
slot. Read more