Trait frame_election_provider_support::ElectionProvider [−][src]
pub trait ElectionProvider<AccountId, BlockNumber> {
type Error: Debug;
type DataProvider: ElectionDataProvider<AccountId, BlockNumber>;
fn elect() -> Result<Supports<AccountId>, Self::Error>;
}
Expand description
Something that can compute the result of an election and pass it back to the caller.
This trait only provides an interface to request an election, i.e.
ElectionProvider::elect
. That data required for the election need to be passed to the
implemented of this trait through ElectionProvider::DataProvider
.
Associated Types
type DataProvider: ElectionDataProvider<AccountId, BlockNumber>
type DataProvider: ElectionDataProvider<AccountId, BlockNumber>
The data provider of the election.
Required methods
Elect a new set of winners.
The result is returned in a target major format, namely as vector of supports.
This should be implemented as a self-weighing function. The implementor should register its appropriate weight at the end of execution with the system pallet directly.