#election #voting #methods #systems #d-hondt #electoral

electosim

Library to compute electoral methods (as D'Hondt) and simulate elections

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

MIT license

29KB
605 lines

ElectoSIM ~ Rust

crates.io docs.rs codecov

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.

No runtime deps