[−][src]Struct pallet_contracts::GasMeter
Implementations
impl<T: Trait> GasMeter<T>[src]
pub fn new(gas_limit: Gas) -> Self[src]
pub fn charge<Tok: Token<T>>(
&mut self,
metadata: &Tok::Metadata,
token: Tok
) -> GasMeterResult[src]
&mut self,
metadata: &Tok::Metadata,
token: Tok
) -> GasMeterResult
Account for used gas.
Amount is calculated by the given token.
Returns OutOfGas if there is not enough gas or addition of the specified
amount of gas has lead to overflow. On success returns Proceed.
NOTE that amount is always consumed, i.e. if there is not enough gas then the counter will be set to zero.
pub fn refund(&mut self, gas: Gas)[src]
pub fn with_nested<R, F: FnOnce(Option<&mut GasMeter<T>>) -> R>(
&mut self,
amount: Gas,
f: F
) -> R[src]
&mut self,
amount: Gas,
f: F
) -> R
Allocate some amount of gas and perform some work with a newly created nested gas meter.
Invokes f with either the gas meter that has amount gas left or
with None, if this gas meter has not enough gas to allocate given amount.
All unused gas in the nested gas meter is returned to this gas meter.
pub fn gas_spent(&self) -> Gas[src]
Returns how much gas was used.
pub fn gas_left(&self) -> Gas[src]
Returns how much gas left from the initial budget.
pub fn into_dispatch_result<R, E>(
self,
result: Result<R, E>
) -> DispatchResultWithPostInfo where
E: Into<ExecError>, [src]
self,
result: Result<R, E>
) -> DispatchResultWithPostInfo where
E: Into<ExecError>,
Turn this GasMeter into a DispatchResult that contains the actually used gas.
Auto Trait Implementations
impl<T> RefUnwindSafe for GasMeter<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for GasMeter<T> where
T: Send,
T: Send,
impl<T> Sync for GasMeter<T> where
T: Sync,
T: Sync,
impl<T> Unpin for GasMeter<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for GasMeter<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> CheckedConversion for T[src]
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>, [src]
Self: TryFrom<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>, [src]
Self: TryInto<T>,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> IsType<T> for T[src]
fn from_ref(t: &T) -> &T[src]
fn into_ref(&self) -> &T[src]
fn from_mut(t: &mut T) -> &mut T[src]
fn into_mut(&mut self) -> &mut T[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>, [src]
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
fn from_ref(outer: &Outer) -> &T[src]
Get a reference to the inner from the outer.
fn from_mut(outer: &mut Outer) -> &mut T[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Self: UniqueSaturatedInto<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>, [src]
T: UncheckedFrom<S>,
fn unchecked_into(self) -> T[src]
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,