electosim

Crates.ioelectosim
lib.rselectosim
version0.2.3
sourcesrc
created_at2024-06-21 18:45:44.068035
updated_at2024-10-05 21:18:55.058213
descriptionLibrary to compute electoral methods (as D'Hondt) and simulate elections
homepage
repositoryhttps://github.com/edugzlez/electosim-rs
max_upload_size
id1279795
size31,096
Eduardo González Vaquero (edugzlez)

documentation

README

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.

Commit count: 16

cargo fmt