Struct sc_finality_grandpa::AuthoritySet
source · pub struct AuthoritySet<H, N> { /* private fields */ }
Expand description
A set of authorities.
Implementations§
source§impl<H, N> AuthoritySet<H, N>where
N: Add<Output = N> + Ord + Clone + Debug,
H: Clone + Debug + Eq,
impl<H, N> AuthoritySet<H, N>where N: Add<Output = N> + Ord + Clone + Debug, H: Clone + Debug + Eq,
sourcepub fn enacts_standard_change<F, E>(
&self,
finalized_hash: H,
finalized_number: N,
is_descendent_of: &F
) -> Result<Option<bool>, Error<N, E>>where
F: Fn(&H, &H) -> Result<bool, E>,
E: Error,
pub fn enacts_standard_change<F, E>( &self, finalized_hash: H, finalized_number: N, is_descendent_of: &F ) -> Result<Option<bool>, Error<N, E>>where F: Fn(&H, &H) -> Result<bool, E>, E: Error,
Check whether the given finalized block number enacts any standard
authority set change (without triggering it), ensuring that if there are
multiple changes in the same branch, finalizing this block won’t
finalize past multiple transitions (i.e. transitions must be finalized
in-order). Returns Some(true)
if the block being finalized enacts a
change that can be immediately applied, Some(false)
if the block being
finalized enacts a change but it cannot be applied yet since there are
other dependent changes, and None
if no change is enacted. The given
function is_descendent_of
should return true
if the second hash
(target) is a descendent of the first hash (base).
Trait Implementations§
source§impl<H: Clone, N: Clone> Clone for AuthoritySet<H, N>
impl<H: Clone, N: Clone> Clone for AuthoritySet<H, N>
source§fn clone(&self) -> AuthoritySet<H, N>
fn clone(&self) -> AuthoritySet<H, N>
Returns a copy 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 moresource§impl<H, N> Decode for AuthoritySet<H, N>where
ForkTree<H, N, PendingChange<H, N>>: Decode,
Vec<PendingChange<H, N>>: Decode,
AuthoritySetChanges<N>: Decode,
impl<H, N> Decode for AuthoritySet<H, N>where ForkTree<H, N, PendingChange<H, N>>: Decode, Vec<PendingChange<H, N>>: Decode, AuthoritySetChanges<N>: Decode,
source§impl<H, N> Encode for AuthoritySet<H, N>where
ForkTree<H, N, PendingChange<H, N>>: Encode,
Vec<PendingChange<H, N>>: Encode,
AuthoritySetChanges<N>: Encode,
impl<H, N> Encode for AuthoritySet<H, N>where ForkTree<H, N, PendingChange<H, N>>: Encode, Vec<PendingChange<H, N>>: Encode, AuthoritySetChanges<N>: Encode,
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
Convert self to a slice and append it to the destination.
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§fn from(set: AuthoritySet<H, N>) -> Self
fn from(set: AuthoritySet<H, N>) -> Self
Converts to this type from the input type.
source§impl<H: PartialEq, N: PartialEq> PartialEq<AuthoritySet<H, N>> for AuthoritySet<H, N>
impl<H: PartialEq, N: PartialEq> PartialEq<AuthoritySet<H, N>> for AuthoritySet<H, N>
source§fn eq(&self, other: &AuthoritySet<H, N>) -> bool
fn eq(&self, other: &AuthoritySet<H, N>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<H, N> EncodeLike<AuthoritySet<H, N>> for AuthoritySet<H, N>where ForkTree<H, N, PendingChange<H, N>>: Encode, Vec<PendingChange<H, N>>: Encode, AuthoritySetChanges<N>: Encode,
impl<H, N> StructuralPartialEq for AuthoritySet<H, N>
Auto Trait Implementations§
impl<H, N> RefUnwindSafe for AuthoritySet<H, N>where H: RefUnwindSafe, N: RefUnwindSafe,
impl<H, N> Send for AuthoritySet<H, N>where H: Send, N: Send,
impl<H, N> Sync for AuthoritySet<H, N>where H: Sync, N: Sync,
impl<H, N> Unpin for AuthoritySet<H, N>where H: Unpin, N: Unpin,
impl<H, N> UnwindSafe for AuthoritySet<H, N>where H: UnwindSafe, N: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.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, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.