/* 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)] //! Open source counting software for various preferential voting election systems /// 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; 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() }