Struct sp_npos_elections::Assignment [−][src]
pub struct Assignment<AccountId, P: PerThing> { pub who: AccountId, pub distribution: Vec<(AccountId, P)>, }
Expand description
A voter’s stake assignment among a set of targets, represented as ratios.
Fields
who: AccountIdVoter’s identifier.
distribution: Vec<(AccountId, P)>The distribution of the voter’s stake.
Implementations
Convert from a ratio assignment into one with absolute values aka. StakedAssignment.
It needs stake which is the total budget of the voter.
Note that this might create un-normalized assignments, due to accuracy loss of P. Call
site might compensate by calling try_normalize() on the returned StakedAssignment as a
post-precessing.
If an edge ratio is Bounded::min_value(), it is dropped. This edge can never mean
anything useful.
Try and normalize this assignment.
If Ok(()) is returned, then the assignment MUST have been successfully normalized to 100%.
Errors
This will return only if the internal normalize fails. This can happen if sum of
self.distribution.map(|p| p.deconstruct()) fails to fit inside UpperOf<P>. A user of
this crate may statically assert that this can never happen and safely expect this to
return Ok.
Trait Implementations
Attempt to deserialise the value from 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
Returns the “default value” for a type. Read more
Convert self to a slice and append it to the destination.
fn using_encoded<R, F>(&self, f: F) -> R where
    F: FnOnce(&[u8]) -> R, 
fn using_encoded<R, F>(&self, f: F) -> R where
    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) -> usizeCalculates the encoded size. Read more
impl<AccountId: PartialEq, P: PartialEq + PerThing> PartialEq<Assignment<AccountId, P>> for Assignment<AccountId, P>
impl<AccountId: PartialEq, P: PartialEq + PerThing> PartialEq<Assignment<AccountId, P>> for Assignment<AccountId, P>This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
impl<AccountId, P: PerThing> EncodeLike<Assignment<AccountId, P>> for Assignment<AccountId, P> where
    AccountId: Encode,
    AccountId: Encode,
    Vec<(AccountId, P)>: Encode,
    Vec<(AccountId, P)>: Encode, Auto Trait Implementations
impl<AccountId, P> RefUnwindSafe for Assignment<AccountId, P> where
    AccountId: RefUnwindSafe,
    P: RefUnwindSafe, impl<AccountId, P> Send for Assignment<AccountId, P> where
    AccountId: Send,
    P: Send, impl<AccountId, P> Sync for Assignment<AccountId, P> where
    AccountId: Sync,
    P: Sync, impl<AccountId, P> Unpin for Assignment<AccountId, P> where
    AccountId: Unpin,
    P: Unpin, impl<AccountId, P> UnwindSafe for Assignment<AccountId, P> where
    AccountId: UnwindSafe,
    P: UnwindSafe, Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
    T: Any, 
impl<T> Downcast for T where
    T: Any, 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. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub 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. Read more
Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub 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. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = TShould always be Self
The counterpart to unchecked_from.
Consume self to return an equivalent value of T.
pub fn vzip(self) -> Vimpl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode, impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode, impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode, impl<T> EncodeLike<Arc<T>> for T where
    T: Encode, impl<T> EncodeLike<Rc<T>> for T where
    T: Encode, impl<T> MaybeDebug for T where
    T: Debug,