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 for Percentage<T>
impl<T: PartialEq + Copy + Into<f64>> PartialEq 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 ==
.source§impl<const H: i32, const L: i32> TryFrom<i32> for Percentage<BoundedInt32<H, L>>
impl<const H: i32, const L: i32> TryFrom<i32> for Percentage<BoundedInt32<H, L>>
impl<T: Copy + Copy + Into<f64>> Copy for Percentage<T>
impl<T: Eq + Copy + Into<f64>> Eq for Percentage<T>
impl<T: Copy + Into<f64>> StructuralPartialEq for Percentage<T>
Auto Trait Implementations§
impl<T> Freeze for Percentage<T>where
T: Freeze,
impl<T> RefUnwindSafe for Percentage<T>where
T: RefUnwindSafe,
impl<T> Send for Percentage<T>where
T: Send,
impl<T> Sync for Percentage<T>where
T: Sync,
impl<T> Unpin for Percentage<T>where
T: Unpin,
impl<T> UnwindSafe for Percentage<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more