pub trait Polling<Tally> {
    type Index: Parameter + Member + Ord + PartialOrd + Copy + HasCompact + MaxEncodedLen;
    type Votes: Parameter + Member + Ord + PartialOrd + Copy + HasCompact + MaxEncodedLen;
    type Class: Parameter + Member + Ord + PartialOrd + MaxEncodedLen;
    type Moment;

    fn classes() -> Vec<Self::Class> ;
    fn as_ongoing(index: Self::Index) -> Option<(Tally, Self::Class)>;
    fn access_poll<R>(
        index: Self::Index,
        f: impl FnOnce(PollStatus<&mut Tally, Self::Moment, Self::Class>) -> R
    ) -> R; fn try_access_poll<R>(
        index: Self::Index,
        f: impl FnOnce(PollStatus<&mut Tally, Self::Moment, Self::Class>) -> Result<R, DispatchError>
    ) -> Result<R, DispatchError>; fn create_ongoing(class: Self::Class) -> Result<Self::Index, ()>; fn end_ongoing(index: Self::Index, approved: bool) -> Result<(), ()>; fn max_ongoing() -> (Self::Class, u32) { ... } }

Required Associated Types§

Required Methods§

Provides a vec of values that T may take.

Some if the referendum index can be voted on, along with the tally and class of referendum.

Don’t use this if you might mutate - use try_access_poll instead.

Create an ongoing majority-carries poll of given class lasting given period for the purpose of benchmarking.

May return Err if it is impossible.

End the given ongoing poll and return the result.

Returns Err if index is not an ongoing poll.

Provided Methods§

The maximum amount of ongoing polls within any single class. By default it practically unlimited (u32::max_value()).

Implementors§