percentum

Crates.iopercentum
lib.rspercentum
version0.0.6
created_at2025-02-28 21:53:54.016987+00
updated_at2025-06-19 22:15:32.633233+00
descriptionPercentage type sanity
homepage
repositoryhttps://github.com/clarkmoody/percentum
max_upload_size
id1573231
size37,106
Clark Moody (clarkmoody)

documentation

README

Percentum

per centum - "by a hundred"

A sane Percentage data type for Rust that encodes the underlying numeric representation explicitly.

let p = Percentage::from_fraction(0.55);
let q = Percentage::from_points(55.0);

assert_eq!(p, q);

Feature Flags

  • decimal: Implementation for rust_decimal::Decimal
  • serde: Modules for serde operations on percentage points or fractions
#[derive(serde::Deserialize)]
struct Data {
    #[serde(with = "serde_fraction")]
    rate: Percentage<f64>,
}

let d = serde_json::from_str(r#"{ "rate": 0.55 }"#).unwrap();
assert_eq!(d.rate, Percentage::from_points(55.0));
Commit count: 18

cargo fmt