Trait Polling
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;
    // Required methods
    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<(), ()>;
    // Provided method
    fn max_ongoing() -> (Self::Class, u32) { ... }
}Required Associated Types§
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
Required Methods§
fn as_ongoing(index: Self::Index) -> Option<(Tally, Self::Class)>
fn as_ongoing(index: Self::Index) -> Option<(Tally, Self::Class)>
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.
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 create_ongoing(class: Self::Class) -> Result<Self::Index, ()>
Create an ongoing majority-carries poll of given class lasting given period for the purpose of benchmarking.
May return Err if it is impossible.
Provided Methods§
fn max_ongoing() -> (Self::Class, u32)
fn max_ongoing() -> (Self::Class, u32)
The maximum amount of ongoing polls within any single class. By default it practically
unlimited (u32::max_value()).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.