pub struct Number(/* private fields */);Expand description
High precision number, stored as 4 u64 words in little endian
Implementations§
Source§impl Number
Wrapper around PreciseNumber (a U256) that has 1e12 precision
impl Number
Wrapper around PreciseNumber (a U256) that has 1e12 precision
pub const SIZEOF: usize = 32
pub const ZERO: Self
pub const ONE: Self
pub const DENOM: u128 = precise_number::ONE
pub fn from_bytes_le(slice: &[u8]) -> Self
pub fn from_natural_u64(value: u64) -> Self
pub fn from_ratio(num: u128, den: u128) -> Self
pub fn checked_add(&self, x: &Self) -> Option<Self>
pub fn checked_sub(&self, x: &Self) -> Option<Self>
pub fn checked_mul(&self, x: &Self) -> Option<Self>
pub fn checked_div(&self, x: &Self) -> Option<Self>
pub fn to_pn(&self) -> PreciseNumber
pub fn min(numbers: &[Self]) -> Self
pub fn floor_u64(&self) -> u64
pub fn ceil(&self) -> u128
pub fn ceil_u64(&self) -> u64
pub fn floor_u128(&self) -> u128
pub fn to_f64(&self) -> Option<f64>
Trait Implementations§
Source§impl AddAssign for Number
impl AddAssign for Number
Source§fn add_assign(&mut self, rhs: Number)
fn add_assign(&mut self, rhs: Number)
Performs the
+= operation. Read moreSource§impl BorshDeserialize for Number
impl BorshDeserialize for Number
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for Number
impl BorshSerialize for Number
Source§impl From<PreciseNumber> for Number
impl From<PreciseNumber> for Number
Source§fn from(pn: PreciseNumber) -> Self
fn from(pn: PreciseNumber) -> Self
Converts to this type from the input type.
Source§impl Ord for Number
impl Ord for Number
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for Number
impl PartialOrd for Number
Source§impl SubAssign for Number
impl SubAssign for Number
Source§fn sub_assign(&mut self, rhs: Number)
fn sub_assign(&mut self, rhs: Number)
Performs the
-= operation. Read moreimpl Copy for Number
impl Eq for Number
impl StructuralPartialEq for Number
Auto Trait Implementations§
impl Freeze for Number
impl RefUnwindSafe for Number
impl Send for Number
impl Sync for Number
impl Unpin for Number
impl UnsafeUnpin for Number
impl UnwindSafe for Number
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more