Struct Assignment

Source
pub struct Assignment<AccountId, T: PerThing> {
    pub who: AccountId,
    pub distribution: Vec<(AccountId, T)>,
}
Expand description

A voter’s stake assignment among a set of targets, represented as ratios.

Fields§

§who: AccountId

Voter’s identifier.

§distribution: Vec<(AccountId, T)>

The distribution of the voter’s stake.

Implementations§

Source§

impl<AccountId, T: PerThing> Assignment<AccountId, T>

Source

pub fn into_staked( self, stake: ExtendedBalance, fill: bool, ) -> StakedAssignment<AccountId>
where T: Mul<ExtendedBalance, Output = ExtendedBalance>,

Convert from a ratio assignment into one with absolute values aka. StakedAssignment.

It needs stake which is the total budget of the voter. If fill is set to true, it tries to ensure that all the potential rounding errors are compensated and the distribution’s sum is exactly equal to the total budget, by adding or subtracting the remainder from the last distribution.

If an edge ratio is Bounded::max_value(), it is dropped. This edge can never mean anything useful.

Trait Implementations§

Source§

impl<AccountId: Clone, T: Clone + PerThing> Clone for Assignment<AccountId, T>

Source§

fn clone(&self) -> Assignment<AccountId, T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<AccountId: Debug, T: Debug + PerThing> Debug for Assignment<AccountId, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<AccountId, T: PerThing> Decode for Assignment<AccountId, T>
where AccountId: Decode, Vec<(AccountId, T)>: Decode,

Source§

fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>

Attempt to deserialise the value from input.
Source§

impl<AccountId: Default, T: Default + PerThing> Default for Assignment<AccountId, T>

Source§

fn default() -> Assignment<AccountId, T>

Returns the “default value” for a type. Read more
Source§

impl<AccountId, T: PerThing> Encode for Assignment<AccountId, T>
where AccountId: Encode, Vec<(AccountId, T)>: Encode,

Source§

fn encode_to<__CodecOutputEdqy: Output>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )

Convert self to a slice and append it to the destination.
Source§

fn size_hint(&self) -> usize

If possible give a hint of expected size of the encoding. Read more
Source§

fn encode(&self) -> Vec<u8>

Convert self to an owned vector.
Source§

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.
Source§

impl<AccountId: PartialEq, T: PartialEq + PerThing> PartialEq for Assignment<AccountId, T>

Source§

fn eq(&self, other: &Assignment<AccountId, T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<AccountId, T: PerThing> EncodeLike for Assignment<AccountId, T>
where AccountId: Encode, Vec<(AccountId, T)>: Encode,

Source§

impl<AccountId: Eq, T: Eq + PerThing> Eq for Assignment<AccountId, T>

Source§

impl<AccountId, T: PerThing> StructuralPartialEq for Assignment<AccountId, T>

Auto Trait Implementations§

§

impl<AccountId, T> Freeze for Assignment<AccountId, T>
where AccountId: Freeze,

§

impl<AccountId, T> RefUnwindSafe for Assignment<AccountId, T>
where AccountId: RefUnwindSafe, T: RefUnwindSafe,

§

impl<AccountId, T> Send for Assignment<AccountId, T>
where AccountId: Send, T: Send,

§

impl<AccountId, T> Sync for Assignment<AccountId, T>
where AccountId: Sync, T: Sync,

§

impl<AccountId, T> Unpin for Assignment<AccountId, T>
where AccountId: Unpin, T: Unpin,

§

impl<AccountId, T> UnwindSafe for Assignment<AccountId, T>
where AccountId: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DecodeAll for T
where T: Decode,

Source§

fn decode_all(input: &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. If not all data is consumed, an error is returned.
Source§

impl<T> DecodeLimit for T
where T: Decode,

Source§

fn decode_all_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. If not all data is consumed, an error is returned.
Source§

fn decode_with_depth_limit(limit: u32, input: &[u8]) -> Result<T, Error>

Decode Self with given maximum recursion depth. is returned.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> KeyedVec for T
where T: Codec,

Source§

fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8>

Return an encoding of Self prepended by given slice.
Source§

impl<T> SaturatedConversion for T

Source§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
Source§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

Source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
Source§

impl<S> Codec for S
where S: Decode + Encode,

Source§

impl<T> EncodeLike<&&T> for T
where T: Encode,

Source§

impl<T> EncodeLike<&T> for T
where T: Encode,

Source§

impl<T> EncodeLike<&mut T> for T
where T: Encode,

Source§

impl<T> EncodeLike<Arc<T>> for T
where T: Encode,

Source§

impl<T> EncodeLike<Box<T>> for T
where T: Encode,

Source§

impl<'a, T> EncodeLike<Cow<'a, T>> for T
where T: ToOwned + Encode,

Source§

impl<T> EncodeLike<Rc<T>> for T
where T: Encode,

Source§

impl<S> FullCodec for S
where S: Decode + FullEncode,

Source§

impl<S> FullEncode for S
where S: Encode + EncodeLike,