Skip to main content

StatusDefect

Enum StatusDefect 

Source
#[non_exhaustive]
pub enum StatusDefect<'a> { OriginalIsDerived { operation: &'a str, }, NoEdgeSupportsStatus { status: &'a str, }, UnknownStatus { status: &'a str, }, }
Expand description

Why a passport’s life status does not agree with its derivation edges.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

OriginalIsDerived

The passport claims original while also claiming to derive from a predecessor.

An original unit is the one placed on the market, not the output of an operation performed on something else, so any derivation edge contradicts the claim. Carries the first offending operation rather than all of them: one is enough to show the contradiction, and the edge list is the caller’s to report in full.

Fields

§operation: &'a str

The operation of the first derivation edge, in wire form.

§

NoEdgeSupportsStatus

The passport claims a second-life status that no derivation edge supports.

Either the edges name a different operation, or there are none at all — which are the same defect from this rule’s point of view, since both leave the claimed operation unrecorded. Whether the edge that is there carries its predecessor’s consent is super::consent’s question.

Fields

§status: &'a str

The status the passport claims, in wire form.

§

UnknownStatus

The status is not one of the five values Annex XIII point 4(c) enumerates.

Unreachable from core, whose LifeStatus is a closed enum, and the reason this variant exists anyway is the Wasm plugins: they hand this crate JSON string fields, so an unknown value is a shape a caller really can produce. Reported rather than ignored — a status outside the annex is an invented value, and the fail-open reading would be to treat it as consistent with anything.

Fields

§status: &'a str

What the passport carried.

Trait Implementations§

Source§

impl<'a> Clone for StatusDefect<'a>

Source§

fn clone(&self) -> StatusDefect<'a>

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<'a> Copy for StatusDefect<'a>

Source§

impl<'a> Debug for StatusDefect<'a>

Source§

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

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

impl<'a> Eq for StatusDefect<'a>

Source§

impl<'a> PartialEq for StatusDefect<'a>

Source§

fn eq(&self, other: &StatusDefect<'a>) -> bool

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

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for StatusDefect<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for StatusDefect<'a>

§

impl<'a> RefUnwindSafe for StatusDefect<'a>

§

impl<'a> Send for StatusDefect<'a>

§

impl<'a> Sync for StatusDefect<'a>

§

impl<'a> Unpin for StatusDefect<'a>

§

impl<'a> UnsafeUnpin for StatusDefect<'a>

§

impl<'a> UnwindSafe for StatusDefect<'a>

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

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.