Skip to main content

ReplayedTransition

Struct ReplayedTransition 

Source
pub struct ReplayedTransition<Record, Step> {
    pub record: Option<Record>,
    pub record_digest: Digest,
    pub committed_step: Option<Step>,
    pub step_seq: WireU64,
}
Expand description

The answer to an input this operation already accepted.

Two strengths of answer, and §12.3 rule 10 is what decides which one a caller gets:

  • reproduction — above a restored checkpoint’s base_step_seq the runtime still holds the record and the step it committed, so a redelivery is answered with both;
  • acknowledgement — below it, the step was never durable (§22.12) and the record may already have been reclaimed under an acked checkpoint. What survives is the ledger entry, and that is what answers: this input is step N, record D. A caller retrying a lost response learns exactly what it needed to; nothing is fabricated to fill the other two fields.

record_digest is therefore the one field that is always present — it is the identity of the transition, where record and committed_step are the (possibly reclaimed) contents of it.

Fields§

§record: Option<Record>§record_digest: Digest§committed_step: Option<Step>§step_seq: WireU64

Trait Implementations§

Source§

impl<Record: Clone, Step: Clone> Clone for ReplayedTransition<Record, Step>

Source§

fn clone(&self) -> ReplayedTransition<Record, Step>

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<Record: Debug, Step: Debug> Debug for ReplayedTransition<Record, Step>

Source§

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

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

impl<'de, Record, Step> Deserialize<'de> for ReplayedTransition<Record, Step>
where Record: Deserialize<'de>, Step: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<Record: PartialEq, Step: PartialEq> PartialEq for ReplayedTransition<Record, Step>

Source§

fn eq(&self, other: &ReplayedTransition<Record, Step>) -> bool

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

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

Inequality operator !=. Read more
Source§

impl<Record, Step> Serialize for ReplayedTransition<Record, Step>
where Record: Serialize, Step: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<Record: PartialEq, Step: PartialEq> StructuralPartialEq for ReplayedTransition<Record, Step>

Auto Trait Implementations§

§

impl<Record, Step> Freeze for ReplayedTransition<Record, Step>
where Record: Freeze, Step: Freeze,

§

impl<Record, Step> RefUnwindSafe for ReplayedTransition<Record, Step>
where Record: RefUnwindSafe, Step: RefUnwindSafe,

§

impl<Record, Step> Send for ReplayedTransition<Record, Step>
where Record: Send, Step: Send,

§

impl<Record, Step> Sync for ReplayedTransition<Record, Step>
where Record: Sync, Step: Sync,

§

impl<Record, Step> Unpin for ReplayedTransition<Record, Step>
where Record: Unpin, Step: Unpin,

§

impl<Record, Step> UnsafeUnpin for ReplayedTransition<Record, Step>
where Record: UnsafeUnpin, Step: UnsafeUnpin,

§

impl<Record, Step> UnwindSafe for ReplayedTransition<Record, Step>
where Record: UnwindSafe, Step: UnwindSafe,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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.