pub struct NearToken { /* private fields */ }
Implementations§
source§impl NearToken
impl NearToken
sourcepub const fn from_yoctonear(inner: u128) -> NearToken
pub const fn from_yoctonear(inner: u128) -> NearToken
from_yoctonear
is a function that takes value by a number of yocto-near.
§Examples
use near_token::NearToken;
assert_eq!( NearToken::from_yoctonear(10u128.pow(21)), NearToken::from_millinear(1))
sourcepub const fn from_millinear(inner: u128) -> NearToken
pub const fn from_millinear(inner: u128) -> NearToken
from_millinear
is a function that takes value by a number of mili-near and converts it to an equivalent to the yocto-near.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_millinear(1), NearToken::from_yoctonear(10u128.pow(21)))
sourcepub const fn from_near(inner: u128) -> NearToken
pub const fn from_near(inner: u128) -> NearToken
from_near
is a function that takes value by a number of near and converts it to an equivalent to the yocto-near.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_near(1), NearToken::from_yoctonear(10u128.pow(24)))
sourcepub const fn as_near(&self) -> u128
pub const fn as_near(&self) -> u128
as_near
is a function that converts number of yocto-near to an equivalent to the near.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10u128.pow(24)).as_near(), 1)
sourcepub const fn as_millinear(&self) -> u128
pub const fn as_millinear(&self) -> u128
as_millinear
is a function that converts number of yocto-near to an equivalent to the mili-near.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10u128.pow(21)).as_millinear(), 1)
sourcepub const fn as_yoctonear(&self) -> u128
pub const fn as_yoctonear(&self) -> u128
as_yoctonear
is a function that shows a number of yocto-near.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10).as_yoctonear(), 10)
sourcepub const fn is_zero(&self) -> bool
pub const fn is_zero(&self) -> bool
is_zero
is a boolian function that checks NearToken
if a NearToken
inner is zero, returns true.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(0).is_zero(), true)
sourcepub const fn checked_add(self, rhs: NearToken) -> Option<NearToken>
pub const fn checked_add(self, rhs: NearToken) -> Option<NearToken>
Checked integer addition. Computes self + rhs, returning None if overflow occurred.
§Examples
use near_token::NearToken;
use std::u128;
assert_eq!(NearToken::from_yoctonear(u128::MAX -2).checked_add(NearToken::from_yoctonear(2)), Some(NearToken::from_yoctonear(u128::MAX)));
assert_eq!(NearToken::from_yoctonear(u128::MAX -2).checked_add(NearToken::from_yoctonear(3)), None);
sourcepub const fn checked_sub(self, rhs: NearToken) -> Option<NearToken>
pub const fn checked_sub(self, rhs: NearToken) -> Option<NearToken>
Checked integer subtraction. Computes self - rhs, returning None if overflow occurred.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(2).checked_sub(NearToken::from_yoctonear(2)), Some(NearToken::from_yoctonear(0)));
assert_eq!(NearToken::from_yoctonear(2).checked_sub(NearToken::from_yoctonear(3)), None);
sourcepub const fn checked_mul(self, rhs: u128) -> Option<NearToken>
pub const fn checked_mul(self, rhs: u128) -> Option<NearToken>
Checked integer multiplication. Computes self * rhs, returning None if overflow occurred.
§Examples
use near_token::NearToken;
use std::u128;
assert_eq!(NearToken::from_yoctonear(2).checked_mul(2), Some(NearToken::from_yoctonear(4)));
assert_eq!(NearToken::from_yoctonear(u128::MAX).checked_mul(2), None)
sourcepub const fn checked_div(self, rhs: u128) -> Option<NearToken>
pub const fn checked_div(self, rhs: u128) -> Option<NearToken>
Checked integer division. Computes self / rhs, returning None if rhs == 0.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10).checked_div(2), Some(NearToken::from_yoctonear(5)));
assert_eq!(NearToken::from_yoctonear(2).checked_div(0), None);
sourcepub const fn saturating_add(self, rhs: NearToken) -> NearToken
pub const fn saturating_add(self, rhs: NearToken) -> NearToken
Saturating integer addition. Computes self + rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(5).saturating_add(NearToken::from_yoctonear(5)), NearToken::from_yoctonear(10));
assert_eq!(NearToken::from_yoctonear(u128::MAX).saturating_add(NearToken::from_yoctonear(1)), NearToken::from_yoctonear(u128::MAX));
sourcepub const fn saturating_sub(self, rhs: NearToken) -> NearToken
pub const fn saturating_sub(self, rhs: NearToken) -> NearToken
Saturating integer subtraction. Computes self - rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(5).saturating_sub(NearToken::from_yoctonear(2)), NearToken::from_yoctonear(3));
assert_eq!(NearToken::from_yoctonear(1).saturating_sub(NearToken::from_yoctonear(2)), NearToken::from_yoctonear(0));
sourcepub const fn saturating_mul(self, rhs: u128) -> NearToken
pub const fn saturating_mul(self, rhs: u128) -> NearToken
Saturating integer multiplication. Computes self * rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use near_token::NearToken;
use std::u128;
assert_eq!(NearToken::from_yoctonear(2).saturating_mul(5), NearToken::from_yoctonear(10));
assert_eq!(NearToken::from_yoctonear(u128::MAX).saturating_mul(2), NearToken::from_yoctonear(u128::MAX));
sourcepub const fn saturating_div(self, rhs: u128) -> NearToken
pub const fn saturating_div(self, rhs: u128) -> NearToken
Saturating integer division. Computes self / rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10).saturating_div(2), NearToken::from_yoctonear(5));
assert_eq!(NearToken::from_yoctonear(10).saturating_div(0), NearToken::from_yoctonear(0))
sourcepub fn exact_amount_display(&self) -> String
pub fn exact_amount_display(&self) -> String
Formats the NearToken
and displays the amount in NEAR or yoctoNEAR depending on the value.
§Examples
use near_token::NearToken;
assert_eq!(NearToken::from_yoctonear(10_u128.pow(24)).exact_amount_display(), "1 NEAR");
assert_eq!(NearToken::from_yoctonear(15 * 10_u128.pow(23)).exact_amount_display(), "1.5 NEAR");
assert_eq!(NearToken::from_yoctonear(500).exact_amount_display(), "500 yoctoNEAR");
assert_eq!(NearToken::from_yoctonear(0).exact_amount_display(), "0 NEAR");
Trait Implementations§
source§impl BorshDeserialize for NearToken
impl BorshDeserialize for NearToken
fn deserialize_reader<__R>(reader: &mut __R) -> Result<NearToken, Error>where
__R: Read,
source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
source§impl BorshSerialize for NearToken
impl BorshSerialize for NearToken
source§impl<'de> Deserialize<'de> for NearToken
impl<'de> Deserialize<'de> for NearToken
source§fn deserialize<D>(
deserializer: D,
) -> Result<NearToken, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<NearToken, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
source§impl Display for NearToken
impl Display for NearToken
NearToken Display implementation rounds up the token amount to the relevant precision point. There are 4 breakpoints:
- exactly 0 NEAR
- <0.001 NEAR
- 0.001 - 0.999 NEAR (uses 3 digits after the floating point)
-
1 NEAR (uses 2 digits after the floating point)
source§impl Ord for NearToken
impl Ord for NearToken
source§impl PartialOrd for NearToken
impl PartialOrd for NearToken
source§impl Serialize for NearToken
impl Serialize for NearToken
source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl Copy for NearToken
impl Eq for NearToken
impl StructuralPartialEq for NearToken
Auto Trait Implementations§
impl Freeze for NearToken
impl RefUnwindSafe for NearToken
impl Send for NearToken
impl Sync for NearToken
impl Unpin for NearToken
impl UnwindSafe for NearToken
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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