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: ExtendedBalance
The minimal winner, in terms of total backing stake.
This parameter should be maximized.
sum_stake: ExtendedBalance
The sum of the total backing of all winners.
This parameter should maximized
sum_stake_squared: ExtendedBalance
The 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
.