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}