Struct cosmwasm_std::Uint64 
source · pub struct Uint64(/* private fields */);Expand description
A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.
§Examples
Use from to create instances of this and u64 to get the value out:
let a = Uint64::from(42u64);
assert_eq!(a.u64(), 42);
let b = Uint64::from(70u32);
assert_eq!(b.u64(), 70);Implementations§
source§impl Uint64
 
impl Uint64
pub const MAX: Self = _
pub const MIN: Self = _
sourcepub const fn new(value: u64) -> Self
 
pub const fn new(value: u64) -> Self
Creates a Uint64(value).
This method is less flexible than from but can be called in a const context.
sourcepub const fn to_be_bytes(self) -> [u8; 8]
 
pub const fn to_be_bytes(self) -> [u8; 8]
Returns a copy of the number as big endian bytes.
sourcepub const fn to_le_bytes(self) -> [u8; 8]
 
pub const fn to_le_bytes(self) -> [u8; 8]
Returns a copy of the number as little endian bytes.
pub const fn is_zero(&self) -> bool
pub const fn pow(self, exp: u32) -> Self
sourcepub fn multiply_ratio<A: Into<u64>, B: Into<u64>>(
    &self,
    numerator: A,
    denominator: B
) -> Uint64
 
pub fn multiply_ratio<A: Into<u64>, B: Into<u64>>( &self, numerator: A, denominator: B ) -> Uint64
Returns self * numerator / denominator.
Due to the nature of the integer division involved, the result is always floored. E.g. 5 * 99/100 = 4.
sourcepub fn checked_multiply_ratio<A: Into<u64>, B: Into<u64>>(
    &self,
    numerator: A,
    denominator: B
) -> Result<Uint64, CheckedMultiplyRatioError>
 
pub fn checked_multiply_ratio<A: Into<u64>, B: Into<u64>>( &self, numerator: A, denominator: B ) -> Result<Uint64, CheckedMultiplyRatioError>
Returns self * numerator / denominator.
Due to the nature of the integer division involved, the result is always floored. E.g. 5 * 99/100 = 4.
pub fn checked_add(self, other: Self) -> Result<Self, OverflowError>
pub fn checked_sub(self, other: Self) -> Result<Self, OverflowError>
pub fn checked_mul(self, other: Self) -> Result<Self, OverflowError>
pub fn checked_pow(self, exp: u32) -> Result<Self, OverflowError>
pub fn checked_div(self, other: Self) -> Result<Self, DivideByZeroError>
pub fn checked_div_euclid(self, other: Self) -> Result<Self, DivideByZeroError>
pub fn checked_rem(self, other: Self) -> Result<Self, DivideByZeroError>
pub fn checked_shr(self, other: u32) -> Result<Self, OverflowError>
pub fn checked_shl(self, other: u32) -> Result<Self, OverflowError>
pub fn wrapping_add(self, other: Self) -> Self
pub fn wrapping_sub(self, other: Self) -> Self
pub fn wrapping_mul(self, other: Self) -> Self
pub fn wrapping_pow(self, other: u32) -> Self
pub fn saturating_add(self, other: Self) -> Self
pub fn saturating_sub(self, other: Self) -> Self
pub fn saturating_mul(self, other: Self) -> Self
pub fn saturating_pow(self, exp: u32) -> Self
sourcepub const fn strict_add(self, rhs: Self) -> Self
 
pub const fn strict_add(self, rhs: Self) -> Self
Strict integer addition. Computes self + rhs, panicking if overflow occurred.
This is the same as Uint64::add but const.
sourcepub const fn strict_sub(self, other: Self) -> Self
 
pub const fn strict_sub(self, other: Self) -> Self
Strict integer subtraction. Computes self - rhs, panicking if overflow occurred.
This is the same as Uint64::sub but const.
pub const fn abs_diff(self, other: Self) -> Self
source§impl Uint64
 
impl Uint64
sourcepub fn checked_mul_floor<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>
 
pub fn checked_mul_floor<F: Fraction<T>, T: Into<Uint64>>( self, rhs: F ) -> Result<Self, CheckedMultiplyFractionError>
Multiply self with a struct implementing Fraction (e.g. crate::Decimal).
Result is rounded down.
§Examples
use cosmwasm_std::Uint128;
let fraction = (8u128, 21u128);
let res = Uint128::new(123456).checked_mul_floor(fraction).unwrap();
assert_eq!(Uint128::new(47030), res); // 47030.8571 rounds downsourcepub fn mul_floor<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Self
 
pub fn mul_floor<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Self
Same operation as checked_mul_floor except unwrapped
sourcepub fn checked_mul_ceil<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>
 
pub fn checked_mul_ceil<F: Fraction<T>, T: Into<Uint64>>( self, rhs: F ) -> Result<Self, CheckedMultiplyFractionError>
Multiply self with a struct implementing Fraction (e.g. crate::Decimal).
Result is rounded up.
§Examples
use cosmwasm_std::Uint128;
let fraction = (8u128, 21u128);
let res = Uint128::new(123456).checked_mul_ceil(fraction).unwrap();
assert_eq!(Uint128::new(47031), res); // 47030.8571 rounds upsourcepub fn mul_ceil<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Self
 
pub fn mul_ceil<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Self
Same operation as checked_mul_ceil except unwrapped
sourcepub fn checked_div_floor<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>where
    Self: Sized,
 
pub fn checked_div_floor<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>where
    Self: Sized,
Divide self with a struct implementing Fraction (e.g. crate::Decimal).
Result is rounded down.
§Examples
use cosmwasm_std::Uint128;
let fraction = (4u128, 5u128);
let res = Uint128::new(789).checked_div_floor(fraction).unwrap();
assert_eq!(Uint128::new(986), res); // 986.25 rounds downsourcepub fn div_floor<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Selfwhere
    Self: Sized,
 
pub fn div_floor<F: Fraction<T>, T: Into<Uint64>>(self, rhs: F) -> Selfwhere
    Self: Sized,
Same operation as checked_div_floor except unwrapped
sourcepub fn checked_div_ceil<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>where
    Self: Sized,
 
pub fn checked_div_ceil<F: Fraction<T>, T: Into<Uint64>>(
    self,
    rhs: F
) -> Result<Self, CheckedMultiplyFractionError>where
    Self: Sized,
Divide self with a struct implementing Fraction (e.g. crate::Decimal).
Result is rounded up.
§Examples
use cosmwasm_std::Uint128;
let fraction = (4u128, 5u128);
let res = Uint128::new(789).checked_div_ceil(fraction).unwrap();
assert_eq!(Uint128::new(987), res); // 986.25 rounds upTrait Implementations§
source§impl<'a> AddAssign<&'a Uint64> for Uint64
 
impl<'a> AddAssign<&'a Uint64> for Uint64
source§fn add_assign(&mut self, rhs: &'a Uint64)
 
fn add_assign(&mut self, rhs: &'a Uint64)
+= operation. Read moresource§impl AddAssign for Uint64
 
impl AddAssign for Uint64
source§fn add_assign(&mut self, rhs: Uint64)
 
fn add_assign(&mut self, rhs: Uint64)
+= operation. Read moresource§impl<'de> Deserialize<'de> for Uint64
 
impl<'de> Deserialize<'de> for Uint64
source§fn deserialize<D>(deserializer: D) -> Result<Uint64, D::Error>where
    D: Deserializer<'de>,
 
fn deserialize<D>(deserializer: D) -> Result<Uint64, D::Error>where
    D: Deserializer<'de>,
Deserialized from an integer string using base 10
source§impl<'a> DivAssign<&'a Uint64> for Uint64
 
impl<'a> DivAssign<&'a Uint64> for Uint64
source§fn div_assign(&mut self, rhs: &'a Uint64)
 
fn div_assign(&mut self, rhs: &'a Uint64)
/= operation. Read moresource§impl DivAssign for Uint64
 
impl DivAssign for Uint64
source§fn div_assign(&mut self, rhs: Self)
 
fn div_assign(&mut self, rhs: Self)
/= operation. Read moresource§impl JsonSchema for Uint64
 
impl JsonSchema for Uint64
source§fn schema_name() -> String
 
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
 
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
 
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
 
fn is_referenceable() -> bool
$ref keyword. Read moresource§impl MulAssign<&Uint64> for Uint64
 
impl MulAssign<&Uint64> for Uint64
source§fn mul_assign(&mut self, other: &Uint64)
 
fn mul_assign(&mut self, other: &Uint64)
*= operation. Read moresource§impl MulAssign for Uint64
 
impl MulAssign for Uint64
source§fn mul_assign(&mut self, rhs: Self)
 
fn mul_assign(&mut self, rhs: Self)
*= operation. Read moresource§impl Ord for Uint64
 
impl Ord for Uint64
source§impl PartialEq<&Uint64> for Uint64
 
impl PartialEq<&Uint64> for Uint64
source§impl<'a> PartialEq<Uint64> for &'a Uint64
 
impl<'a> PartialEq<Uint64> for &'a Uint64
source§impl PartialEq for Uint64
 
impl PartialEq for Uint64
source§impl PartialOrd for Uint64
 
impl PartialOrd for Uint64
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
 
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresource§impl RemAssign<&Uint64> for Uint64
 
impl RemAssign<&Uint64> for Uint64
source§fn rem_assign(&mut self, other: &Uint64)
 
fn rem_assign(&mut self, other: &Uint64)
%= operation. Read moresource§impl RemAssign for Uint64
 
impl RemAssign for Uint64
source§fn rem_assign(&mut self, rhs: Uint64)
 
fn rem_assign(&mut self, rhs: Uint64)
%= operation. Read moresource§impl<'a> ShlAssign<&'a u32> for Uint64
 
impl<'a> ShlAssign<&'a u32> for Uint64
source§fn shl_assign(&mut self, rhs: &'a u32)
 
fn shl_assign(&mut self, rhs: &'a u32)
<<= operation. Read moresource§impl ShlAssign<u32> for Uint64
 
impl ShlAssign<u32> for Uint64
source§fn shl_assign(&mut self, rhs: u32)
 
fn shl_assign(&mut self, rhs: u32)
<<= operation. Read moresource§impl<'a> ShrAssign<&'a u32> for Uint64
 
impl<'a> ShrAssign<&'a u32> for Uint64
source§fn shr_assign(&mut self, rhs: &'a u32)
 
fn shr_assign(&mut self, rhs: &'a u32)
>>= operation. Read moresource§impl ShrAssign<u32> for Uint64
 
impl ShrAssign<u32> for Uint64
source§fn shr_assign(&mut self, rhs: u32)
 
fn shr_assign(&mut self, rhs: u32)
>>= operation. Read moresource§impl SubAssign<&Uint64> for Uint64
 
impl SubAssign<&Uint64> for Uint64
source§fn sub_assign(&mut self, other: &Uint64)
 
fn sub_assign(&mut self, other: &Uint64)
-= operation. Read moresource§impl SubAssign for Uint64
 
impl SubAssign for Uint64
source§fn sub_assign(&mut self, rhs: Uint64)
 
fn sub_assign(&mut self, rhs: Uint64)
-= operation. Read more