pub struct Gas { /* private fields */ }
Expand description
A wrapper struct for u64
that represents gas. And provides helpful methods to convert to and from tera-gas and giga-gas.
Implementations§
Source§impl NearGas
impl NearGas
Sourcepub const fn from_tgas(inner: u64) -> NearGas
pub const fn from_tgas(inner: u64) -> NearGas
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) -> NearGas
pub const fn from_ggas(inner: u64) -> NearGas
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) -> NearGas
pub const fn from_gas(inner: u64) -> NearGas
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<NearGas>
pub const fn checked_add(self, rhs: NearGas) -> Option<NearGas>
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<NearGas>
pub const fn checked_sub(self, rhs: NearGas) -> Option<NearGas>
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<NearGas>
pub const fn checked_mul(self, rhs: u64) -> Option<NearGas>
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<NearGas>
pub const fn checked_div(self, rhs: u64) -> Option<NearGas>
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 BorshDeserialize for NearGas
impl BorshDeserialize for NearGas
fn deserialize_reader<__R>(reader: &mut __R) -> Result<NearGas, 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 BorshSchema for NearGas
impl BorshSchema for NearGas
Source§fn declaration() -> String
fn declaration() -> String
Source§fn add_definitions_recursively(definitions: &mut BTreeMap<String, Definition>)
fn add_definitions_recursively(definitions: &mut BTreeMap<String, Definition>)
Source§impl BorshSerialize for NearGas
impl BorshSerialize for NearGas
Source§impl<'de> Deserialize<'de> for NearGas
impl<'de> Deserialize<'de> for NearGas
Source§fn deserialize<D>(
deserializer: D,
) -> Result<NearGas, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<NearGas, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl Display for NearGas
NearGas Display implementation rounds up the gas usage to the relevant precision point.
There are 4 breakpoints:
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 JsonSchema for NearGas
impl JsonSchema for NearGas
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moreSource§fn schema_name() -> String
fn schema_name() -> String
Source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Source§impl Ord for NearGas
impl Ord for NearGas
Source§impl PartialOrd for NearGas
impl PartialOrd for NearGas
Source§impl Serialize for NearGas
impl Serialize for NearGas
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 NearGas
impl Eq for NearGas
impl StructuralPartialEq for NearGas
Auto Trait Implementations§
impl Freeze for NearGas
impl RefUnwindSafe for NearGas
impl Send for NearGas
impl Sync for NearGas
impl Unpin for NearGas
impl UnwindSafe for NearGas
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§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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.