pub struct IntFloat { /* private fields */ }
Expand description
Simplified alternative to rust_decimal::Decimal to that allows hashing. Standard library floats can’t be hashed which is needed when using (for example) HashMaps. The number is converted to a x 10^-b, with a and b being integers (and thus Hashable).
Note that when accuracy is important, rust_decimal::Decimal is a safer alternative. But when speed is needed, this implementation is faster.
§Examples
use intfloat::IntFloat;
let a = IntFloat::from(10 as f32, 0);
let b = IntFloat::from(5.2, 0);
assert_eq!(a, b+b);
let c = IntFloat::from(5.2, 1);
assert_ne!(b, c);
Implementations§
Trait Implementations§
Source§impl AddAssign for IntFloat
impl AddAssign for IntFloat
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moreSource§impl Num for IntFloat
impl Num for IntFloat
type FromStrRadixErr = ParseIntError
Source§fn from_str_radix(str: &str, radix: u32) -> Result<IntFloat, ParseIntError>
fn from_str_radix(str: &str, radix: u32) -> Result<IntFloat, ParseIntError>
Convert from a string and radix (typically
2..=36
). Read moreSource§impl PartialOrd for IntFloat
impl PartialOrd for IntFloat
Source§impl SubAssign for IntFloat
impl SubAssign for IntFloat
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-=
operation. Read moreSource§impl ToPrimitive for IntFloat
impl ToPrimitive for IntFloat
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
Converts the value of
self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
Converts the value of
self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned.Source§fn to_f32(&self) -> Option<f32>
fn to_f32(&self) -> Option<f32>
Converts the value of
self
to an f32
. Overflows may map to positive
or negative inifinity, otherwise None
is returned if the value cannot
be represented by an f32
.Source§fn to_f64(&self) -> Option<f64>
fn to_f64(&self) -> Option<f64>
Converts the value of
self
to an f64
. Overflows may map to positive
or negative inifinity, otherwise None
is returned if the value cannot
be represented by an f64
. Read moreSource§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
Converts the value of
self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
Converts the value of
self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
Converts the value of
self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
Converts the value of
self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
Converts the value of
self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
Converts the value of
self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
Converts the value of
self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
Converts the value of
self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned.impl Copy for IntFloat
impl Eq for IntFloat
Auto Trait Implementations§
impl Freeze for IntFloat
impl RefUnwindSafe for IntFloat
impl Send for IntFloat
impl Sync for IntFloat
impl Unpin for IntFloat
impl UnwindSafe for IntFloat
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