Struct tor_units::Percentage
source · pub struct Percentage<T: Copy + Into<f64>> { /* private fields */ }Expand description
A percentage value represented as a number.
This type wraps an underlying numeric type, and ensures that callers are clear whether they want a fraction, or a percentage.
Implementations§
source§impl<T: Copy + Into<f64>> Percentage<T>
impl<T: Copy + Into<f64>> Percentage<T>
sourcepub fn as_fraction(self) -> f64
pub fn as_fraction(self) -> f64
Return this value as a (possibly improper) fraction.
use tor_units::Percentage;
let pct_200 = Percentage::<u8>::new(200);
let pct_100 = Percentage::<u8>::new(100);
let pct_50 = Percentage::<u8>::new(50);
assert_eq!(pct_200.as_fraction(), 2.0);
assert_eq!(pct_100.as_fraction(), 1.0);
assert_eq!(pct_50.as_fraction(), 0.5);
// Note: don't actually compare f64 with ==.sourcepub fn as_percent(self) -> T
pub fn as_percent(self) -> T
Return this value as a percentage.
use tor_units::Percentage;
let pct_200 = Percentage::<u8>::new(200);
let pct_100 = Percentage::<u8>::new(100);
let pct_50 = Percentage::<u8>::new(50);
assert_eq!(pct_200.as_percent(), 200);
assert_eq!(pct_100.as_percent(), 100);
assert_eq!(pct_50.as_percent(), 50);Trait Implementations§
source§impl<T: Clone + Copy + Into<f64>> Clone for Percentage<T>
impl<T: Clone + Copy + Into<f64>> Clone for Percentage<T>
source§fn clone(&self) -> Percentage<T>
fn clone(&self) -> Percentage<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<T: PartialEq + Copy + Into<f64>> PartialEq<Percentage<T>> for Percentage<T>
impl<T: PartialEq + Copy + Into<f64>> PartialEq<Percentage<T>> for Percentage<T>
source§fn eq(&self, other: &Percentage<T>) -> bool
fn eq(&self, other: &Percentage<T>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.