Skip to main content

PushRefusal

Enum PushRefusal 

Source
pub enum PushRefusal<V>
where V: Identities,
{ Sealed { epoch: Epoch<V>, sealed_through: <V as Identities>::EpochId, }, EpochAbandoned { epoch: Epoch<V>, }, UnknownLineage(<V as Identities>::Lineage), GateAbandoned { gate: Epoch<V>, }, GateCycle { cycle: Vec<Epoch<V>>, }, UnknownFile(IoTargetKey), Backend(RefusalCause), }
Expand description

Why a push was refused before anything was reserved.

Variants§

§

Sealed

The write’s epoch is at or below its lineage’s seal point (DI-D-9 rule a).

Fields

§epoch: Epoch<V>

The write’s epoch.

§sealed_through: <V as Identities>::EpochId

Its lineage’s seal point.

§

EpochAbandoned

The write’s epoch was abandoned (DI-D-35): its writes were declared lost, so none may join it, sealed or open. An epoch at or below the seal point is refused as Sealed instead.

Fields

§epoch: Epoch<V>

The write’s epoch.

§

UnknownLineage(<V as Identities>::Lineage)

The write’s lineage, or the gate’s, is not one the instance can answer for: another instance’s, or one ended or retired (DI-D-40, DI-D-43).

§

GateAbandoned

The gate names an epoch already abandoned, so the operation could never be released.

Fields

§gate: Epoch<V>

The gate.

§

GateCycle

The gate would close a cycle: its lineage reaching it already needs, transitively, this write to complete (DI-D-23).

Fields

§cycle: Vec<Epoch<V>>

The cycle, as SealError::GateCycle lists one, starting at this write’s epoch and its gate.

§

UnknownFile(IoTargetKey)

No target was given to the instance under this key.

§

Backend(RefusalCause)

The backend refused the push, naming why, so the caller can act on it (DI-D-52): among others, a registered-span operation on an instance built without registered buffers (RefusalCause::Unsupported), or a span the registration does not contain (RefusalCause::Invalid).

Trait Implementations§

Source§

impl<V> Debug for PushRefusal<V>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<V> !RefUnwindSafe for PushRefusal<V>

§

impl<V> !UnwindSafe for PushRefusal<V>

§

impl<V> Freeze for PushRefusal<V>

§

impl<V> Send for PushRefusal<V>
where Epoch<V>: Send, <V as Identities>::EpochId: Send, <V as Identities>::Lineage: Send, Vec<Epoch<V>>: Send,

§

impl<V> Sync for PushRefusal<V>
where Epoch<V>: Sync, <V as Identities>::EpochId: Sync, <V as Identities>::Lineage: Sync, Vec<Epoch<V>>: Sync,

§

impl<V> Unpin for PushRefusal<V>
where Epoch<V>: Unpin, <V as Identities>::EpochId: Unpin, <V as Identities>::Lineage: Unpin, Vec<Epoch<V>>: Unpin,

§

impl<V> UnsafeUnpin for PushRefusal<V>

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> 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 = !

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.