Struct cairo_lang_sierra_gas::gas_info::GasInfo
source · pub struct GasInfo {
pub variable_values: OrderedHashMap<(StatementIdx, CostTokenType), i64>,
pub function_costs: OrderedHashMap<FunctionId, OrderedHashMap<CostTokenType, i64>>,
}
Expand description
Gas information for a Sierra program.
Fields§
§variable_values: OrderedHashMap<(StatementIdx, CostTokenType), i64>
The values of variables at matching libfuncs at given statements indices.
function_costs: OrderedHashMap<FunctionId, OrderedHashMap<CostTokenType, i64>>
The costs of calling the given function.
Implementations§
source§impl GasInfo
impl GasInfo
pub fn combine(self, other: GasInfo) -> GasInfo
sourcepub fn assert_eq_variables(&self, other: &GasInfo, program: &Program)
pub fn assert_eq_variables(&self, other: &GasInfo, program: &Program)
Asserts that all non-branch align values in self.variable_values
are equal to the values
in other.variable_values
. Panics otherwise, printing the differences.
We allow branch align values to be different, as they do not affect generated code directly.
sourcepub fn assert_eq_functions(&self, other: &GasInfo)
pub fn assert_eq_functions(&self, other: &GasInfo)
Asserts that all the cost of functions in self
are equal to the costs in other
.
Panics otherwise, printing the differences.
Trait Implementations§
source§impl PartialEq for GasInfo
impl PartialEq for GasInfo
impl Eq for GasInfo
impl StructuralPartialEq for GasInfo
Auto Trait Implementations§
impl RefUnwindSafe for GasInfo
impl Send for GasInfo
impl Sync for GasInfo
impl Unpin for GasInfo
impl UnwindSafe for GasInfo
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.