Skip to main content

AcquireFailure

Enum AcquireFailure 

Source
pub enum AcquireFailure {
    NameNotRegistered,
    CapTableFull,
    Refused,
}
Expand description

Why a reacquire_cap_detail failed. The two real cases want OPPOSITE responses, which is the entire reason this type exists rather than a bool.

NameNotRegistered is transient and expected: peers are acquired before they are spawned at boot, and again while one is mid-restart. Retry; it heals. CapTableFull is permanent: this service cannot hold another capability, so it can never reacquire anything again and will not recover until it is restarted - a failed recovery, which §26.7 says must stay exactly as visible as the original failure.

Collapsed into one value (as reacquire_cap still does, for callers that only retry) a service can only print both and commit to neither. That ambiguity cost a full debugging pass on the Pi 2: a block-driver that was alive the whole time produced the same line as a reader out of cap slots.

Variants§

§

NameNotRegistered

The name does not resolve right now - no live instance is registered under it. Transient.

§

CapTableFull

The name resolved, but this service’s own capability table is full. Terminal until restart.

§

Refused

The request itself was refused (name empty, too long, or not a declared peer).

Implementations§

Source§

impl AcquireFailure

Source

pub fn reason(self) -> &'static str

One clause naming the cause, for a caller assembling a log line.

Trait Implementations§

Source§

impl Clone for AcquireFailure

Source§

fn clone(&self) -> AcquireFailure

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 Debug for AcquireFailure

Source§

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

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

impl PartialEq for AcquireFailure

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AcquireFailure

Source§

impl Eq for AcquireFailure

Source§

impl StructuralPartialEq for AcquireFailure

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, 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.