pub struct UncGas { /* private fields */ }
Implementations§
Source§impl UncGas
impl UncGas
Sourcepub const fn from_tgas(inner: u64) -> Self
pub const fn from_tgas(inner: u64) -> Self
Creates a new UncGas
from the specified number of whole tera Gas.
§Examples
use unc_gas::UncGas;
let tera_gas = UncGas::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 UncGas
from the specified number of whole giga Gas.
§Examples
use unc_gas::UncGas;
let giga_gas = UncGas::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 UncGas
from the specified number of whole Gas.
§Examples
use unc_gas::UncGas;
let gas = UncGas::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 UncGas
.
§Examples
use unc_gas::UncGas;
let UncGas = UncGas::from_gas(12345);
assert_eq!(UncGas.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 UncGas
.
§Examples
use unc_gas::UncGas;
let UncGas = UncGas::from_gas(1 * 1_000_000_000);
assert_eq!(UncGas.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 UncGas
.
§Examples
use unc_gas::UncGas;
let UncGas = UncGas::from_gas(1 * 1_000_000_000_000);
assert_eq!(UncGas.as_tgas(), 1);
Sourcepub const fn checked_add(self, rhs: UncGas) -> Option<Self>
pub const fn checked_add(self, rhs: UncGas) -> Option<Self>
Checked integer addition. Computes self + rhs, returning None if overflow occurred.
§Examples
use unc_gas::UncGas;
use std::u64;
assert_eq!(UncGas::from_gas(u64::MAX -2).checked_add(UncGas::from_gas(2)), Some(UncGas::from_gas(u64::MAX)));
assert_eq!(UncGas::from_gas(u64::MAX -2).checked_add(UncGas::from_gas(3)), None);
Sourcepub const fn checked_sub(self, rhs: UncGas) -> Option<Self>
pub const fn checked_sub(self, rhs: UncGas) -> Option<Self>
Checked integer subtraction. Computes self - rhs, returning None if overflow occurred.
§Examples
use unc_gas::UncGas;
assert_eq!(UncGas::from_gas(2).checked_sub(UncGas::from_gas(2)), Some(UncGas::from_gas(0)));
assert_eq!(UncGas::from_gas(2).checked_sub(UncGas::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 unc_gas::UncGas;
use std::u64;
assert_eq!(UncGas::from_gas(2).checked_mul(2), Some(UncGas::from_gas(4)));
assert_eq!(UncGas::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 unc_gas::UncGas;
assert_eq!(UncGas::from_gas(10).checked_div(2), Some(UncGas::from_gas(5)));
assert_eq!(UncGas::from_gas(2).checked_div(0), None);
Sourcepub const fn saturating_add(self, rhs: UncGas) -> UncGas
pub const fn saturating_add(self, rhs: UncGas) -> UncGas
Saturating integer addition. Computes self + rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use unc_gas::UncGas;
assert_eq!(UncGas::from_gas(5).saturating_add(UncGas::from_gas(5)), UncGas::from_gas(10));
assert_eq!(UncGas::from_gas(u64::MAX).saturating_add(UncGas::from_gas(1)), UncGas::from_gas(u64::MAX));
Sourcepub const fn saturating_sub(self, rhs: UncGas) -> UncGas
pub const fn saturating_sub(self, rhs: UncGas) -> UncGas
Saturating integer subtraction. Computes self - rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use unc_gas::UncGas;
assert_eq!(UncGas::from_gas(5).saturating_sub(UncGas::from_gas(2)), UncGas::from_gas(3));
assert_eq!(UncGas::from_gas(1).saturating_sub(UncGas::from_gas(2)), UncGas::from_gas(0));
Sourcepub const fn saturating_mul(self, rhs: u64) -> UncGas
pub const fn saturating_mul(self, rhs: u64) -> UncGas
Saturating integer multiplication. Computes self * rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use unc_gas::UncGas;
use std::u64;
assert_eq!(UncGas::from_gas(2).saturating_mul(5), UncGas::from_gas(10));
assert_eq!(UncGas::from_gas(u64::MAX).saturating_mul(2), UncGas::from_gas(u64::MAX));
Sourcepub const fn saturating_div(self, rhs: u64) -> UncGas
pub const fn saturating_div(self, rhs: u64) -> UncGas
Saturating integer division. Computes self / rhs, saturating at the numeric bounds instead of overflowing.
§Examples
use unc_gas::UncGas;
assert_eq!(UncGas::from_gas(10).saturating_div(2), UncGas::from_gas(5));
assert_eq!(UncGas::from_gas(10).saturating_div(0), UncGas::from_gas(0))
Trait Implementations§
Source§impl Display for UncGas
UncGas Display implementation rounds up the gas usage to the relevant precision point.
There are 4 breakpoints:
impl Display for UncGas
UncGas 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)