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

Converts this cost into U256

Tries to fit U256 into this Cost type

Convert to usize (may panic)

Add with overflow

Multiple with overflow

Single-step full multiplication and shift: (self*other) >> shr Should not overflow on intermediate steps

Implementors