Struct frame_election_provider_support::Assignment [−][src]
pub struct Assignment<AccountId, P> where
P: PerThing, { pub who: AccountId, pub distribution: Vec<(AccountId, P), Global>, }
Expand description
A voter’s stake assignment among a set of targets, represented as ratios.
Fields
who: AccountIdVoter’s identifier.
distribution: Vec<(AccountId, P), Global>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
pub fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Assignment<AccountId, P>, Error> where
__CodecInputEdqy: Input,
pub fn decode<__CodecInputEdqy>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Assignment<AccountId, P>, Error> where
__CodecInputEdqy: Input, 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, P> PartialEq<Assignment<AccountId, P>> for Assignment<AccountId, P> where
AccountId: PartialEq<AccountId>,
P: PartialEq<P> + PerThing,
impl<AccountId, P> PartialEq<Assignment<AccountId, P>> for Assignment<AccountId, P> where
AccountId: PartialEq<AccountId>,
P: PartialEq<P> + PerThing, This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
impl<AccountId, P> EncodeLike<Assignment<AccountId, P>> for Assignment<AccountId, P> where
AccountId: Encode,
P: PerThing,
Vec<(AccountId, P), Global>: 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, impl<T> MaybeDebug for T where
T: Debug,