Trait ethcore::evm::evm::CostType
[−]
[src]
pub trait CostType: Sized + From<usize> + Copy + Mul<Output=Self> + Div<Output=Self> + Add<Output=Self> + Sub<Output=Self> + Shr<usize, Output=Self> + Shl<usize, Output=Self> + Ord + Debug { fn as_u256(&self) -> U256; fn from_u256(val: U256) -> Result<Self>; fn as_usize(&self) -> usize; fn overflow_add(self, other: Self) -> (Self, bool); fn overflow_mul(self, other: Self) -> (Self, bool); fn overflow_mul_shr(self, other: Self, shr: usize) -> (Self, bool); }
Cost calculation type. For low-gas usage we calculate costs using usize instead of U256
Required Methods
fn as_u256(&self) -> U256
Converts this cost into U256
fn from_u256(val: U256) -> Result<Self>
Tries to fit U256
into this Cost
type
fn as_usize(&self) -> usize
Convert to usize (may panic)
fn overflow_add(self, other: Self) -> (Self, bool)
Add with overflow
fn overflow_mul(self, other: Self) -> (Self, bool)
Multiple with overflow
fn overflow_mul_shr(self, other: Self, shr: usize) -> (Self, bool)
Single-step full multiplication and shift: (self*other) >> shr
Should not overflow on intermediate steps
Implementors
impl CostType for U256
impl CostType for usize