pub struct NearGas { /* private fields */ }
Implementations§
source§impl NearGas
impl NearGas
sourcepub const fn from_tgas(inner: u64) -> Self
pub const fn from_tgas(inner: u64) -> Self
Creates a new NearGas
from the specified number of whole tera Gas.
Examples
use near_gas::NearGas;
let tera_gas = NearGas::from_tgas(5);
assert_eq!(tera_gas.as_gas(), 5 * 1_000_000_000_000);
sourcepub const fn from_ggas(inner: u64) -> Self
pub const fn from_ggas(inner: u64) -> Self
Creates a new NearGas
from the specified number of whole giga Gas.
Examples
use near_gas::NearGas;
let giga_gas = NearGas::from_ggas(5);
assert_eq!(giga_gas.as_gas(), 5 * 1_000_000_000);
sourcepub const fn from_gas(inner: u64) -> Self
pub const fn from_gas(inner: u64) -> Self
Creates a new NearGas
from the specified number of whole Gas.
Examples
use near_gas::NearGas;
let gas = NearGas::from_gas(5 * 1_000_000_000_000);
assert_eq!(gas.as_tgas(), 5);
sourcepub const fn as_gas(self) -> u64
pub const fn as_gas(self) -> u64
Returns the total number of whole Gas contained by this NearGas
.
Examples
use near_gas::NearGas;
let neargas = NearGas::from_gas(12345);
assert_eq!(neargas.as_gas(), 12345);
sourcepub const fn as_ggas(self) -> u64
pub const fn as_ggas(self) -> u64
Returns the total number of a whole part of giga Gas contained by this NearGas
.
Examples
use near_gas::NearGas;
let neargas = NearGas::from_gas(1 * 1_000_000_000);
assert_eq!(neargas.as_ggas(), 1);
sourcepub const fn as_tgas(self) -> u64
pub const fn as_tgas(self) -> u64
Returns the total number of a whole part of tera Gas contained by this NearGas
.
Examples
use near_gas::NearGas;
let neargas = NearGas::from_gas(1 * 1_000_000_000_000);
assert_eq!(neargas.as_tgas(), 1);
sourcepub const fn checked_add(self, rhs: NearGas) -> Option<Self>
pub const fn checked_add(self, rhs: NearGas) -> Option<Self>
Checked integer addition. Computes self + rhs, returning None if overflow occurred.
Examples
use near_gas::NearGas;
use std::u64;
assert_eq!(NearGas::from_gas(u64::MAX -2).checked_add(NearGas::from_gas(2)), Some(NearGas::from_gas(u64::MAX)));
assert_eq!(NearGas::from_gas(u64::MAX -2).checked_add(NearGas::from_gas(3)), None);
sourcepub const fn checked_sub(self, rhs: NearGas) -> Option<Self>
pub const fn checked_sub(self, rhs: NearGas) -> Option<Self>
Checked integer subtraction. Computes self - rhs, returning None if overflow occurred.
Examples
use near_gas::NearGas;
assert_eq!(NearGas::from_gas(2).checked_sub(NearGas::from_gas(2)), Some(NearGas::from_gas(0)));
assert_eq!(NearGas::from_gas(2).checked_sub(NearGas::from_gas(3)), None);
sourcepub const fn checked_mul(self, rhs: u64) -> Option<Self>
pub const fn checked_mul(self, rhs: u64) -> Option<Self>
Checked integer multiplication. Computes self * rhs, returning None if overflow occurred.
Examples
use near_gas::NearGas;
use std::u64;
assert_eq!(NearGas::from_gas(2).checked_mul(2), Some(NearGas::from_gas(4)));
assert_eq!(NearGas::from_gas(u64::MAX).checked_mul(2), None)
sourcepub const fn checked_div(self, rhs: u64) -> Option<Self>
pub const fn checked_div(self, rhs: u64) -> Option<Self>
Checked integer division. Computes self / rhs, returning None if rhs == 0.
Examples
use near_gas::NearGas;
assert_eq!(NearGas::from_gas(10).checked_div(2), Some(NearGas::from_gas(5)));
assert_eq!(NearGas::from_gas(2).checked_div(0), None);
sourcepub const fn saturating_add(self, rhs: NearGas) -> NearGas
pub const fn saturating_add(self, rhs: NearGas) -> NearGas
Saturating integer addition. Computes self + rhs, saturating at the numeric bounds instead of overflowing.
Examples
use near_gas::NearGas;
assert_eq!(NearGas::from_gas(5).saturating_add(NearGas::from_gas(5)), NearGas::from_gas(10));
assert_eq!(NearGas::from_gas(u64::MAX).saturating_add(NearGas::from_gas(1)), NearGas::from_gas(u64::MAX));
sourcepub const fn saturating_sub(self, rhs: NearGas) -> NearGas
pub const fn saturating_sub(self, rhs: NearGas) -> NearGas
Saturating integer subtraction. Computes self - rhs, saturating at the numeric bounds instead of overflowing.
Examples
use near_gas::NearGas;
assert_eq!(NearGas::from_gas(5).saturating_sub(NearGas::from_gas(2)), NearGas::from_gas(3));
assert_eq!(NearGas::from_gas(1).saturating_sub(NearGas::from_gas(2)), NearGas::from_gas(0));
sourcepub const fn saturating_mul(self, rhs: u64) -> NearGas
pub const fn saturating_mul(self, rhs: u64) -> NearGas
Saturating integer multiplication. Computes self * rhs, saturating at the numeric bounds instead of overflowing.
Examples
use near_gas::NearGas;
use std::u64;
assert_eq!(NearGas::from_gas(2).saturating_mul(5), NearGas::from_gas(10));
assert_eq!(NearGas::from_gas(u64::MAX).saturating_mul(2), NearGas::from_gas(u64::MAX));
sourcepub const fn saturating_div(self, rhs: u64) -> NearGas
pub const fn saturating_div(self, rhs: u64) -> NearGas
Saturating integer division. Computes self / rhs, saturating at the numeric bounds instead of overflowing.
Examples
use near_gas::NearGas;
assert_eq!(NearGas::from_gas(10).saturating_div(2), NearGas::from_gas(5));
assert_eq!(NearGas::from_gas(10).saturating_div(0), NearGas::from_gas(0))
Trait Implementations§
source§impl Display for NearGas
impl Display for NearGas
NearGas Display implementation rounds up the gas usage to the relevant precision point. There are 4 breakpoints:
- exactly 0 Tgas
- <0.001 Tgas
- 0.001 - 0.999 Tgas (uses 3 digits after the floating point)
-
1 Tgas (uses 1 digit after the floating point)
source§impl Ord for NearGas
impl Ord for NearGas
source§impl PartialEq for NearGas
impl PartialEq for NearGas
source§impl PartialOrd for NearGas
impl PartialOrd for NearGas
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 more