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§
impl Eq for GasInfo
impl StructuralPartialEq for GasInfo
Auto Trait Implementations§
impl Freeze for GasInfo
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.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more