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_seqthe 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: WireU64Trait Implementations§
Source§impl<Record: Clone, Step: Clone> Clone for ReplayedTransition<Record, Step>
impl<Record: Clone, Step: Clone> Clone for ReplayedTransition<Record, Step>
Source§fn clone(&self) -> ReplayedTransition<Record, Step>
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'de, Record, Step> Deserialize<'de> for ReplayedTransition<Record, Step>where
Record: Deserialize<'de>,
Step: Deserialize<'de>,
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>,
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, Step> Serialize for ReplayedTransition<Record, Step>
impl<Record, Step> Serialize for ReplayedTransition<Record, Step>
impl<Record: PartialEq, Step: PartialEq> StructuralPartialEq for ReplayedTransition<Record, Step>
Auto Trait Implementations§
impl<Record, Step> Freeze for ReplayedTransition<Record, Step>
impl<Record, Step> RefUnwindSafe for ReplayedTransition<Record, Step>
impl<Record, Step> Send for ReplayedTransition<Record, Step>
impl<Record, Step> Sync for ReplayedTransition<Record, Step>
impl<Record, Step> Unpin for ReplayedTransition<Record, Step>
impl<Record, Step> UnsafeUnpin for ReplayedTransition<Record, Step>
impl<Record, Step> UnwindSafe for ReplayedTransition<Record, Step>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more