pub struct ConsensusSession {
pub proposal: Proposal,
pub state: ConsensusState,
pub votes: HashMap<Vec<u8>, Vote>,
pub created_at: u64,
pub config: ConsensusConfig,
}Fields§
§proposal: ProposalCurrent snapshot of the proposal including aggregated votes.
state: ConsensusStateSession state tracking whether voting is still open.
votes: HashMap<Vec<u8>, Vote>Map of vote owner -> vote to enforce single vote per participant.
created_at: u64Seconds since Unix epoch when the session was created.
config: ConsensusConfigPer-session runtime configuration.
Implementations§
Source§impl ConsensusSession
impl ConsensusSession
Sourcepub fn from_proposal(
proposal: Proposal,
config: ConsensusConfig,
) -> Result<(Self, SessionTransition), ConsensusError>
pub fn from_proposal( proposal: Proposal, config: ConsensusConfig, ) -> Result<(Self, SessionTransition), ConsensusError>
Create a session from a proposal, validating the proposal and all votes. This validates the proposal structure, vote chain, and individual votes before creating the session. The session is created with votes already processed and rounds correctly set.
Sourcepub fn get_consensus_result(&self) -> Result<bool, ConsensusError>
pub fn get_consensus_result(&self) -> Result<bool, ConsensusError>
Get the consensus result if one has been reached.
Returns Ok(true) for YES, Ok(false) for NO, or Err(ConsensusError::ConsensusNotReached) if consensus
hasn’t been reached yet.
Trait Implementations§
Source§impl Clone for ConsensusSession
impl Clone for ConsensusSession
Source§fn clone(&self) -> ConsensusSession
fn clone(&self) -> ConsensusSession
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ConsensusSession
impl RefUnwindSafe for ConsensusSession
impl Send for ConsensusSession
impl Sync for ConsensusSession
impl Unpin for ConsensusSession
impl UnwindSafe for ConsensusSession
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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>
Converts
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>
Converts
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