vote 0.1.3

Common voting methods
Documentation

Build Status

About

This crate provides functionality for several common ranked choice voting methods.

Example Usage

Using this crate is easy! Simply add this crate as a dependency and then use it:

use vote::{random_dictator, Preference};

fn main() {
    // Make a preference profile
    let v = Preference(vec![vec![0, 1, 2, 3]; 4]);

    // Make a voting method
    let x = random_dictator(v);

    // Get the result
    println!("{:?}", x.0)
}

The preferences profile is a unit struct which contains something of type vec<vec<T>> which represents. The first level of indexes represents the voters, each of whom has a vec<T> to encode their votes. This vec contains unique items such that if an item is at index i, its rank in the vote is i+1.