pub trait NposSolver {
    type AccountId: IdentifierT;
    type Accuracy: PerThing128;
    type Error: Debug + PartialEq;

    fn solve(
        to_elect: usize,
        targets: Vec<Self::AccountId>,
        voters: Vec<(Self::AccountId, VoteWeight, impl IntoIterator<Item = Self::AccountId>)>
    ) -> Result<ElectionResult<Self::AccountId, Self::Accuracy>, Self::Error>; fn weight<T: WeightInfo>(
        voters: u32,
        targets: u32,
        vote_degree: u32
    ) -> Weight; }
Expand description

Something that can compute the result to an NPoS solution.

Required Associated Types§

The account identifier type of this solver.

The accuracy of this solver. This will affect the accuracy of the output.

The error type of this implementation.

Required Methods§

Solve an NPoS solution with the given voters, targets, and select to_elect count of targets.

Measure the weight used in the calculation of the solver.

  • voters is the number of voters.
  • targets is the number of targets.
  • vote_degree is the degree ie the maximum numbers of votes per voter.

Implementors§