5 releases
0.2.3 | Oct 5, 2024 |
---|---|
0.2.2 | Oct 4, 2024 |
0.2.1 | Sep 14, 2024 |
0.2.0 | Sep 14, 2024 |
0.1.0 | Jun 21, 2024 |
#67 in Simulation
21 downloads per month
29KB
605 lines
ElectoSIM ~ Rust
ElectoSIM is a Rust library for simulating elections using different voting systems.
Installation
Add this to your Cargo.toml
:
[dependencies]
electosim = "0.2.1"
or add it directly from crates.io:
cargo add electosim
Usage
Using macro election!
use electosim::*;
fn main() {
let candidacies = vec![
candidacy!(2010, 9),
candidacy!(1018, 4),
candidacy!(86, 0),
candidacy!(77, 0),
];
let seats = 13;
let method = Method::HAGENBASCHBISCHOFF;
let cutoff = 0.1;
let mut ele = election![candidacies, seats, method, cutoff];
ele.compute().expect("Can not compute method");
ele.results.iter().for_each(|c| println!("{:?}", c));
}
Directly with the compute_ method
use electosim::*;
use electosim::methods::divisor::compute_dhondt;
fn main() {
let mut candidacies = vec![
candidacy!(2010, 0),
candidacy!(1018, 0),
candidacy!(86, 0),
candidacy!(77, 0),
];
compute_dhondt(&mut candidacies, 13).unwrap();
candidacies.iter().for_each(|c| println!("{:?}", c));
}
License
This project is licensed under the MIT License - see the LICENSE file for details.