pub struct Round<Id: Ord + Eq, H: Ord + Eq, N, Signature> { /* private fields */ }
Expand description

Stores data for a round.

Implementations§

source§

impl<Id, H, N, Signature> Round<Id, H, N, Signature>where Id: Ord + Clone + Eq + Debug, H: Ord + Clone + Eq + Debug, N: Copy + Debug + BlockNumberOps, Signature: Eq + Clone,

source

pub fn new(round_params: RoundParams<Id, H, N>) -> Self

Create a new round accumulator for given round number and with given weight.

source

pub fn number(&self) -> u64

Return the round number.

source

pub fn state(&self) -> State<H, N>

Return the current state.

source

pub fn precommit_ghost(&mut self) -> Option<(H, N)>

Compute and cache the precommit-GHOST.

source

pub fn finalizing_precommits<'a, C: 'a + Chain<H, N>>( &'a mut self, chain: &'a C ) -> Option<impl Iterator<Item = SignedPrecommit<H, N, Signature, Id>> + 'a>

Returns an iterator of all precommits targeting the finalized hash.

Only returns None if no block has been finalized in this round.

source

pub fn estimate(&self) -> Option<&(H, N)>

Fetch the “round-estimate”: the best block which might have been finalized in this round.

Returns None when new new blocks could have been finalized in this round, according to our estimate.

source

pub fn finalized(&self) -> Option<&(H, N)>

Fetch the most recently finalized block.

source

pub fn completable(&self) -> bool

Returns true when the round is completable.

This is the case when the round-estimate is an ancestor of the prevote-ghost head, or when they are the same block and none of its children could possibly have enough precommits.

source

pub fn threshold(&self) -> VoterWeight

Threshold weight for supermajority.

source

pub fn base(&self) -> (H, N)

Return the round base.

source

pub fn voters(&self) -> &VoterSet<Id>

Return the round voters and weights.

source

pub fn primary_voter(&self) -> (&Id, &VoterInfo)

Return the primary voter of the round.

source

pub fn prevote_participation(&self) -> (VoteWeight, usize)

Get the current weight and number of voters who have participated in prevoting.

source

pub fn precommit_participation(&self) -> (VoteWeight, usize)

Get the current weight and number of voters who have participated in precommitting.

source

pub fn prevotes(&self) -> Vec<(Id, Prevote<H, N>, Signature)>

Return all imported prevotes.

source

pub fn precommits(&self) -> Vec<(Id, Precommit<H, N>, Signature)>

Return all imported precommits.

source

pub fn historical_votes(&self) -> &HistoricalVotes<H, N, Signature, Id>

Return all votes for the round (prevotes and precommits), sorted by imported order and indicating the indices where we voted. At most two prevotes and two precommits per voter are present, further equivocations are not stored (as they are redundant).

source

pub fn set_prevoted_index(&mut self)

Set the number of prevotes and precommits received at the moment of prevoting. It should be called inmediatly after prevoting.

source

pub fn set_precommitted_index(&mut self)

Set the number of prevotes and precommits received at the moment of precommiting. It should be called inmediatly after precommiting.

source

pub fn prevoted_index(&self) -> Option<u64>

Get the number of prevotes and precommits received at the moment of prevoting. Returns None if the prevote wasn’t realized.

source

pub fn precommitted_index(&self) -> Option<u64>

Get the number of prevotes and precommits received at the moment of precommiting. Returns None if the precommit wasn’t realized.

Auto Trait Implementations§

§

impl<Id, H, N, Signature> RefUnwindSafe for Round<Id, H, N, Signature>where H: RefUnwindSafe, Id: RefUnwindSafe, N: RefUnwindSafe, Signature: RefUnwindSafe,

§

impl<Id, H, N, Signature> Send for Round<Id, H, N, Signature>where H: Send, Id: Send, N: Send, Signature: Send,

§

impl<Id, H, N, Signature> Sync for Round<Id, H, N, Signature>where H: Sync, Id: Sync, N: Sync, Signature: Sync,

§

impl<Id, H, N, Signature> Unpin for Round<Id, H, N, Signature>where H: Unpin, Id: Unpin, N: Unpin,

§

impl<Id, H, N, Signature> UnwindSafe for Round<Id, H, N, Signature>where H: UnwindSafe + RefUnwindSafe, Id: UnwindSafe + RefUnwindSafe, N: UnwindSafe + RefUnwindSafe, Signature: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Conv for T

source§

fn conv<T>(self) -> Twhere Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pipe for Twhere T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> Rwhere Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.