pub struct Retained<T> { /* private fields */ }Expand description
An owned result retaining the reservation for its backing allocations.
Sharing Arc<Retained<T>> shares one charge. The value is borrowed rather
than extracted, so an array view cannot silently outlive its accounting.
Implementations§
Source§impl<T> Retained<T>
impl<T> Retained<T>
Sourcepub fn new(
value: T,
reservation: MemoryReservation,
bytes: usize,
) -> Result<Self, MemoryBudgetError>
pub fn new( value: T, reservation: MemoryReservation, bytes: usize, ) -> Result<Self, MemoryBudgetError>
Transfers an existing allocation reservation to its completed result.
The caller must reserve before allocation and include every retained
backing buffer in bytes. Unused scratch capacity is released here.
§Errors
Rejects an understated reservation without publishing the value.
Sourcepub const fn retained_bytes(&self) -> usize
pub const fn retained_bytes(&self) -> usize
Charged bytes retained by this result.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Retained<T>where
T: Freeze,
impl<T> RefUnwindSafe for Retained<T>where
T: RefUnwindSafe,
impl<T> Send for Retained<T>where
T: Send,
impl<T> Sync for Retained<T>where
T: Sync,
impl<T> Unpin for Retained<T>where
T: Unpin,
impl<T> UnsafeUnpin for Retained<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for Retained<T>where
T: UnwindSafe,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more