4 releases
0.1.3 | Aug 12, 2020 |
---|---|
0.1.2 | Aug 4, 2020 |
0.1.1 | Aug 2, 2020 |
0.1.0 | Aug 2, 2020 |
#15 in #preferences
9KB
170 lines
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
.
lib.rs
:
This package contains common voting methods.
Dependencies
~1.4–2MB
~37K SLoC