Struct sp_npos_elections::ElectionScore
source · pub struct ElectionScore {
pub minimal_stake: ExtendedBalance,
pub sum_stake: ExtendedBalance,
pub sum_stake_squared: ExtendedBalance,
}Expand description
The score of an election. This is the main measure of an election’s quality.
By definition, the order of significance in ElectionScore is:
minimal_stake.sum_stake.sum_stake_squared.
Fields§
§minimal_stake: ExtendedBalanceThe minimal winner, in terms of total backing stake.
This parameter should be maximized.
sum_stake: ExtendedBalanceThe sum of the total backing of all winners.
This parameter should maximized
sum_stake_squared: ExtendedBalanceThe sum squared of the total backing of all winners, aka. the variance.
Ths parameter should be minimized.
Implementations§
source§impl ElectionScore
impl ElectionScore
sourcepub fn strict_threshold_better(
self,
other: Self,
threshold: impl PerThing
) -> bool
pub fn strict_threshold_better( self, other: Self, threshold: impl PerThing ) -> bool
Compares two sets of election scores based on desirability, returning true if self is
strictly threshold better than other. In other words, each element of self must be
self * threshold better than other.
Evaluation is done based on the order of significance of the fields of ElectionScore.
Trait Implementations§
source§impl Clone for ElectionScore
impl Clone for ElectionScore
source§fn clone(&self) -> ElectionScore
fn clone(&self) -> ElectionScore
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 Debug for ElectionScore
impl Debug for ElectionScore
source§impl Decode for ElectionScore
impl Decode for ElectionScore
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>
Attempt to deserialise the value from input.
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self> ) -> Result<DecodeFinished, Error>where I: Input,
Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where I: Input,
Attempt to skip the encoded value from input. Read more
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
source§impl Default for ElectionScore
impl Default for ElectionScore
source§fn default() -> ElectionScore
fn default() -> ElectionScore
Returns the “default value” for a type. Read more
source§impl<'de> Deserialize<'de> for ElectionScore
impl<'de> Deserialize<'de> for ElectionScore
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Encode for ElectionScore
impl Encode for ElectionScore
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.
§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.
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl MaxEncodedLen for ElectionScore
impl MaxEncodedLen for ElectionScore
source§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
Upper bound, in bytes, of the maximum encoded size of this item.
source§impl Ord for ElectionScore
impl Ord for ElectionScore
source§impl PartialEq<ElectionScore> for ElectionScore
impl PartialEq<ElectionScore> for ElectionScore
source§fn eq(&self, other: &ElectionScore) -> bool
fn eq(&self, other: &ElectionScore) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl PartialOrd<ElectionScore> for ElectionScore
impl PartialOrd<ElectionScore> for ElectionScore
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl Serialize for ElectionScore
impl Serialize for ElectionScore
source§impl TypeInfo for ElectionScore
impl TypeInfo for ElectionScore
impl Copy for ElectionScore
impl EncodeLike<ElectionScore> for ElectionScore
impl Eq for ElectionScore
impl StructuralEq for ElectionScore
impl StructuralPartialEq for ElectionScore
Auto Trait Implementations§
impl RefUnwindSafe for ElectionScore
impl Send for ElectionScore
impl Sync for ElectionScore
impl Unpin for ElectionScore
impl UnwindSafe for ElectionScore
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Decode
Self and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
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> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere T: Codec,
§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.