Skip to main content

liminal_protocol/wire/
sequence_budget.rs

1/// Canonical ten-field conversation sequence budget.
2///
3/// The first seven fields are `u64`; the three checked-product fields are
4/// `u128`. No alternate or optional exhaustion field exists.
5#[derive(Clone, Copy, Debug, PartialEq, Eq)]
6pub struct SequenceBudget {
7    /// Greatest allocated delivery sequence.
8    pub high_watermark: u64,
9    /// Remaining allocatable delivery values.
10    pub remaining: u64,
11    /// Exit (`E`) claims.
12    pub e: u64,
13    /// Binding terminal (`T`) claims.
14    pub t: u64,
15    /// Marker (`M`) claims.
16    pub m: u64,
17    /// Recovery attach sequence (`RS`) claims.
18    pub rs: u64,
19    /// Replacement terminal (`RT`) claims.
20    pub rt: u64,
21    /// Checked `L × T` product.
22    pub l_times_t: u128,
23    /// Checked `L × RT` product.
24    pub l_times_rt: u128,
25    /// Checked `L_other × E` product.
26    pub l_other_times_e: u128,
27}