pub struct VcState<const N: usize, const G: usize, const P: usize> {Show 61 fields
pub configured: bool,
pub epoch: b32,
pub n: b5,
pub me: b5,
pub q: b5,
pub session: b64,
pub view: b32,
pub rec: [[Record<P>; G]; N],
pub sealed_from: b16,
pub seal_hi: [b32; N],
pub p_view: b32,
pub p_open: b16,
pub p_busy: bool,
pub p_subject: b5,
pub p_rec: [Record<P>; G],
pub p_j: b4,
pub p_sent: bool,
pub p_acc: [b64; 4],
pub p_have: bool,
pub p_sign_out: bool,
pub p_signed: bool,
pub p_sig: [b64; 8],
pub p_key_out: bool,
pub p_keyed: bool,
pub p_own_given: bool,
pub p_shared: bool,
pub skip_pending: bool,
pub in_skipped: bool,
pub late_done: bool,
pub prev_open_done: b16,
pub dirty: b16,
pub tainted: b16,
pub sealing: bool,
pub seal_sent: bool,
pub chain_busy: bool,
pub chain_subject: b5,
pub chain_j: b4,
pub chain_sent: bool,
pub chain_acc: [b64; 4],
pub hdone: b16,
pub hdigest: [[b64; 4]; N],
pub opened: b16,
pub open_done: b16,
pub sign_sent: b16,
pub signed: b16,
pub hsig: [[b64; 8]; N],
pub own_given: b16,
pub shared: b16,
pub nv_sent: bool,
pub clock: b32,
pub seal_at: b32,
pub nv_deadline: b32,
pub installed_next: bool,
pub h_ctb: ConsMsg<P>,
pub h_dig: VcDigestReq,
pub h_sign: VcSignReq,
pub h_open: VcKey,
pub h_own: VcKey,
pub h_share: VcKey,
pub h_inst: Install<G, P>,
pub refused: b32,
}Expand description
State.
Fields§
§configured: bool§epoch: b32§n: b5§me: b5§q: b5§session: b64§view: b32§rec: [[Record<P>; G]; N]§sealed_from: b16SEALVIEW(view) seen from these replicas (a seal of a later view counts: that replica has left this view, R-28).
seal_hi: [b32; N]Per replica, one plus the highest view it sealed (0: none). Kept across views so a replica that ran ahead still counts (R-28).
p_view: b32R-28: the view we left, for subjects that seal it after we did. Each
such subject’s view-p_view history is complete exactly at its own
SEALVIEW(p_view) (CTB is FIFO): its records are copied that cycle
into p_rec and chained and shared from the copy only.
p_open: b16§p_busy: bool§p_subject: b5§p_rec: [Record<P>; G]§p_j: b4§p_sent: bool§p_acc: [b64; 4]§p_have: bool§p_sign_out: bool§p_signed: bool§p_sig: [b64; 8]§p_key_out: boolOur own key and share for the late subject go into our own history collector too (so a late NEWVIEW naming it can be judged here).
p_keyed: bool§p_own_given: bool§skip_pending: boolR-28 late install: we issued a skip; we entered this view by skip; a late NEWVIEW for it was taken; the previous view’s opened keys.
in_skipped: bool§late_done: bool§prev_open_done: b16§dirty: b16R-31: subjects whose records changed since their history digest was taken (set on every record write; cleared when a chain or a late copy starts from the current records).
tainted: b16Subjects with a gap in their CTB stream here: never vouched for.
sealing: bool§seal_sent: bool§chain_busy: boolHistory digests: chain progress per subject, and done flags.
chain_subject: b5§chain_j: b4§chain_sent: bool§chain_acc: [b64; 4]§hdone: b16§hdigest: [[b64; 4]; N]§opened: b16§open_done: b16The history collector took our key for this view (only then does its status speak for this view, not a previous one).
sign_sent: b16§signed: b16§hsig: [[b64; 8]; N]§own_given: b16§nv_sent: bool§clock: b32§seal_at: b32§nv_deadline: b32§installed_next: boolThe next view’s NEWVIEW was accepted.
h_ctb: ConsMsg<P>§h_dig: VcDigestReq§h_sign: VcSignReq§h_open: VcKey§h_own: VcKey§h_inst: Install<G, P>§refused: b32Implementations§
Trait Implementations§
Source§impl<const N: usize, const G: usize, const P: usize> Digital for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> Digital for VcState<N, G, P>
Source§const BITS: usize
const BITS: usize
Source§fn static_kind() -> Kind
fn static_kind() -> Kind
Source§fn bin(self) -> Box<[BitX]>
fn bin(self) -> Box<[BitX]>
§fn typed_bits(self) -> TypedBits
fn typed_bits(self) -> TypedBits
§fn discriminant(self) -> TypedBits
fn discriminant(self) -> TypedBits
§fn variant_kind(self) -> Kind
fn variant_kind(self) -> Kind
§fn binary_string(self) -> String
fn binary_string(self) -> String
impl<const N: usize, const G: usize, const P: usize> Copy for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> StructuralPartialEq for VcState<N, G, P>
Auto Trait Implementations§
impl<const N: usize, const G: usize, const P: usize> Freeze for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> RefUnwindSafe for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> Send for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> Sync for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> Unpin for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> UnsafeUnpin for VcState<N, G, P>
impl<const N: usize, const G: usize, const P: usize> UnwindSafe for VcState<N, G, P>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more