Skip to main content

AllocationReleaseState

Enum AllocationReleaseState 

Source
pub enum AllocationReleaseState {
    Live,
    Queued,
    PartiallyUnmapped,
    Released,
    DeviceLost,
    Quarantined,
}
Expand description

Where one allocation’s ownership currently sits.

This is the shared vocabulary used by owning handles, prepared requests, mechanism snapshots, and release outcomes. It deliberately distinguishes “the bytes are gone” from “we still own something we could not give back”.

Variants§

§

Live

Live and mapped. The owner may still read, write, view, or release it.

§

Queued

Final ownership was handed to a deferred queue. The live record is already gone, so no further allocation-level operation can match it, but the physical bytes are not released yet.

§

PartiallyUnmapped

The allocator unmapped part of the allocation and stopped. Residual ownership is still held by the runtime and must not be reused.

§

Released

Released back to the allocator (which may have pooled rather than freed the bytes). This is the only success terminal state.

§

DeviceLost

The device or provider context was lost. No allocator call may be made, and reclamation happens only at confirmed context/process termination.

§

Quarantined

Ownership is retained deliberately because releasing it would be unsafe or dishonest. Quarantined ownership stays observable and blocks unsafe mechanism removal.

Implementations§

Source§

impl AllocationReleaseState

Source

pub const fn retains_ownership(self) -> bool

Whether the runtime still owns physical bytes in this state.

Source

pub const fn permits_allocator_call(self) -> bool

Whether an allocator callback may still be made from this state.

Device loss is false by construction: the allocator is never called after loss, in any phase.

Source

pub const fn is_terminal(self) -> bool

Whether no further transition is expected without external teardown.

Source

pub const fn name(self) -> &'static str

Trait Implementations§

Source§

impl Clone for AllocationReleaseState

Source§

fn clone(&self) -> AllocationReleaseState

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AllocationReleaseState

Source§

impl Debug for AllocationReleaseState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for AllocationReleaseState

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for AllocationReleaseState

Source§

impl Hash for AllocationReleaseState

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for AllocationReleaseState

Source§

fn eq(&self, other: &AllocationReleaseState) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AllocationReleaseState

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> BindingResource for T
where T: Send + Sync + Debug,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.