Skip to main content

AdmitMode

Enum AdmitMode 

Source
pub enum AdmitMode {
    Lease,
    VerifyOnly,
}
Expand description

Whether an admit acquires a releasable holder lease or only checks admissibility.

Verifier-only surfaces (portable/preflight verdicts, adapter one-shot evaluations) answer “would this child admit?” as part of producing a verdict, but they have NO cleanup path that would release a lease. Taking a holder lease on those paths leaks the refcount upward forever: a later real dispatch that unwinds its own lease can never drive holders back to zero, so the edge stays pinned and oversubscribing siblings are wrongly denied until the parent is evicted. VerifyOnly runs the same admissibility checks (and commits a fresh child’s share for sibling-sum accounting) WITHOUT acquiring a lease it will never release.

Variants§

§

Lease

Acquire one holder lease the caller MUST release on its cleanup/drop path. A fresh edge is inserted with holders == 1; an idempotent re-admit takes an ADDITIONAL lease (holders += 1).

§

VerifyOnly

Check admissibility only. A fresh admissible child commits its share with holders == 0 (charged for sibling-sum accounting, but no releasable holder exists); an already-present edge is left completely unchanged. Never increments holders, so a surface with no release path cannot pin the edge past its real holders.

Trait Implementations§

Source§

impl Clone for AdmitMode

Source§

fn clone(&self) -> AdmitMode

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 AdmitMode

Source§

impl Debug for AdmitMode

Source§

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

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

impl Eq for AdmitMode

Source§

impl PartialEq for AdmitMode

Source§

fn eq(&self, other: &AdmitMode) -> 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 AdmitMode

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> 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> Same for T

Source§

type Output = T

Should always be Self
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.