Skip to main content

State

Enum State 

Source
pub enum State {
    Available,
    Held {
        retainer: Retainer,
        expiry: Timestamp,
    },
    Deferred {
        reclaimable_at: Timestamp,
    },
    Settled,
}
Expand description

A pact’s position in its claim lifecycle: the pure state a backend maps to its own storage. The backend owns where it lives; this owns what it means.

For the 0.2 series this is a closed enumeration of exactly these four variants — it is deliberately not #[non_exhaustive] — so a backend author knows the complete set of states to represent and can match it exhaustively, distinct from the growing #[non_exhaustive] protocol enums (Directive/Notice/StepResult) elsewhere in this crate. (This is a stability statement for 0.2.x, not a promise never to evolve the model in a later minor.)

Variants§

§

Available

Never claimed, or freshly seeded: immediately claimable.

§

Held

Held under a lease by retainer until expiry. Claimable again only once the lease has lapsed (expiry < now), which rotates authority away.

Fields

§retainer: Retainer

The current holder’s authority token.

§expiry: Timestamp

When the lease expires.

§

Deferred

Released non-terminally: claimable again only at or after reclaimable_at.

Fields

§reclaimable_at: Timestamp

The instant at or after which the pact may be reclaimed.

§

Settled

Concluded (fulfilled or breached): never claimable again.

This is the model (and reference-backend) representation of a concluded obligation, not a required storage obligation. A durable backend MAY represent settled by removing the row — a load of the absent row returns no state, so the pact is trivially not claimable and the prior retainer can no longer transition it, which is the whole of what settlement guarantees. Do not assume a settled pact persists.

Trait Implementations§

Source§

impl Clone for State

Source§

fn clone(&self) -> State

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 State

Source§

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

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

impl Eq for State

Source§

impl PartialEq for State

Source§

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

Auto Trait Implementations§

§

impl Freeze for State

§

impl RefUnwindSafe for State

§

impl Send for State

§

impl Sync for State

§

impl Unpin for State

§

impl UnsafeUnpin for State

§

impl UnwindSafe for State

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