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 = RawMutex, 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 = RawMutex, 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§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
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 moreSource§fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
First initializes the value using
self then calls the function f with the initialized
value. Read more