#[non_exhaustive]pub struct MultiRoundState {
pub round: u64,
pub participants: Vec<String>,
pub contributions: BTreeMap<String, String>,
pub convergence_type: String,
pub converged: bool,
}Expand description
Internal state tracked across rounds.
#[non_exhaustive] (0.8.0, DECISIONS.md D7), for the same reason as
the handoff, quorum, proposal and task records: this is runtime-produced
coordination state, deserialized from accepted envelopes, that grows a
field whenever the mode learns something new —
convergence_type and
converged both carry #[serde(default)] because they
were added after the fact, and each would be a
constructible_struct_adds_field major today. release-plz.toml’s
semver_check = true turns that into a blocked release PR across all seven
lockstep crates. 0.8.0 is already being taken for the handoff field, so
sealing the rest of the class here costs nothing extra and makes every
future field additive.
Fields stay pub and readable; only construction by struct literal from
another crate is refused, and nothing outside macp-modes constructs one —
the mode mints it from accepted envelopes, which is why no constructor is
offered in its place.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.round: u64§participants: Vec<String>§contributions: BTreeMap<String, String>§convergence_type: String§converged: boolTrait Implementations§
Source§impl Clone for MultiRoundState
impl Clone for MultiRoundState
Source§fn clone(&self) -> MultiRoundState
fn clone(&self) -> MultiRoundState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MultiRoundState
impl Debug for MultiRoundState
Source§impl<'de> Deserialize<'de> for MultiRoundState
impl<'de> Deserialize<'de> for MultiRoundState
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MultiRoundState, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MultiRoundState, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for MultiRoundState
impl Serialize for MultiRoundState
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for MultiRoundState
impl RefUnwindSafe for MultiRoundState
impl Send for MultiRoundState
impl Sync for MultiRoundState
impl Unpin for MultiRoundState
impl UnsafeUnpin for MultiRoundState
impl UnwindSafe for MultiRoundState
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request