[−][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,
[src]
T: RefUnwindSafe,
impl<T> Send for GasMeter<T> where
T: Send,
[src]
T: Send,
impl<T> Sync for GasMeter<T> where
T: Sync,
[src]
T: Sync,
impl<T> Unpin for GasMeter<T> where
T: Unpin,
[src]
T: Unpin,
impl<T> UnwindSafe for GasMeter<T> where
T: UnwindSafe,
[src]
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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
pub fn from_ref(t: &T) -> &T
[src]
pub fn into_ref(&self) -> &T
[src]
pub fn from_mut(t: &mut T) -> &mut T
[src]
pub fn into_mut(&mut self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub 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
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Self: UniqueSaturatedFrom<T>,
pub 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.
pub 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.
pub 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>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,