pub struct CostChange { /* private fields */ }
Expand description
A Gas counter for calculating gas consumption.
Gas cost can be increased or reduced during transition. In some situations, the total
increase amount must be bounded regardless of how large is the reduce amount. Hence, there are
two counters keep track on the both positive and negative side of the value, named deduct
and reward
.
The counter deduct
is to be checked if it exceeds certain limit at some point, while the counter reward
is used at the end of the process to calculate the final gas cost by compensating it.
§Example:
let mut change = CostChange::default(); // = 0
change += CostChange::reward(1); // = 1
change += CostChange::deduct(2); // = -1
assert_eq!(change.values().0, 1);
Implementations§
Trait Implementations§
Source§impl Add for CostChange
impl Add for CostChange
Source§impl AddAssign for CostChange
impl AddAssign for CostChange
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the
+=
operation. Read moreSource§impl Clone for CostChange
impl Clone for CostChange
Source§fn clone(&self) -> CostChange
fn clone(&self) -> CostChange
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for CostChange
impl Debug for CostChange
Source§impl Default for CostChange
impl Default for CostChange
Source§fn default() -> CostChange
fn default() -> CostChange
Returns the “default value” for a type. Read more
Source§impl Sub for CostChange
impl Sub for CostChange
Source§impl SubAssign for CostChange
impl SubAssign for CostChange
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the
-=
operation. Read moreimpl Copy for CostChange
Auto Trait Implementations§
impl Freeze for CostChange
impl RefUnwindSafe for CostChange
impl Send for CostChange
impl Sync for CostChange
impl Unpin for CostChange
impl UnwindSafe for CostChange
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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>
Converts
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>
Converts
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> Pointable for T
impl<T> Pointable for T
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref