gear_core::gas_metering

Struct CustomConstantCostRules

Source
pub struct CustomConstantCostRules { /* private fields */ }
Expand description

This type provides the functionality of ConstantCostRules.

This implementation of Rules will also check the WASM module for instructions that are not supported by Gear Protocol.

Implementations§

Source§

impl CustomConstantCostRules

Source

pub fn new( instruction_cost: u32, memory_grow_cost: u32, call_per_local_cost: u32, ) -> Self

Create a new CustomConstantCostRules.

Uses instruction_cost for every instruction and memory_grow_cost to dynamically meter the memory growth instruction.

Trait Implementations§

Source§

impl Default for CustomConstantCostRules

Source§

fn default() -> Self

Uses instruction cost of 1 and disables memory growth instrumentation.

Source§

impl Rules for CustomConstantCostRules

Source§

fn instruction_cost(&self, instruction: &Instruction) -> Option<u32>

Returns the cost for the passed instruction. Read more
Source§

fn memory_grow_cost(&self) -> MemoryGrowCost

Returns the costs for growing the memory using the memory.grow instruction. Read more
Source§

fn call_per_local_cost(&self) -> u32

A surcharge cost to calling a function that is added per local variable of the function.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> JsonSchemaMaybe for T