/* OpenTally: Open-source election vote counting * Copyright © 2021 Lee Yingtong Li (RunasSudo) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ #![warn(missing_docs)] #![allow(clippy::collapsible_else_if, clippy::collapsible_if, clippy::comparison_chain, clippy::derive_ord_xor_partial_ord, clippy::needless_bool, clippy::needless_return, clippy::new_without_default, clippy::too_many_arguments)] //! Open source counting software for various preferential voting election systems /// Helper newtype for HashMap on [election::Candidate]s pub mod candmap; /// Data types and logic for constraints on elections pub mod constraints; /// Data types for representing abstract elections pub mod election; /// Smart logging framework pub mod logger; /// Implementations of different numeric representations pub mod numbers; /// File parsers pub mod parser; /// Deterministic random number generation using SHA256 pub mod sharandom; /// STV counting logic pub mod stv; /// Tie-breaking methods pub mod ties; /// File writers #[cfg(not(target_arch = "wasm32"))] pub mod writer; /// CLI implementations #[cfg(not(target_arch = "wasm32"))] pub mod cli; use git_version::git_version; #[allow(unused_imports)] use wasm_bindgen::prelude::wasm_bindgen; /// The git revision of this OpenTally build pub const VERSION: &str = git_version!(args=["--always", "--dirty=-dev"], fallback="unknown"); /// Get [VERSION] as a String (for WebAssembly) #[cfg_attr(feature = "wasm", wasm_bindgen)] pub fn version() -> String { VERSION.to_string() }