pub struct EVMConditionEvaluator<'a> { /* private fields */ }
Implementations§
Source§impl<'a> EVMConditionEvaluator<'a>
impl<'a> EVMConditionEvaluator<'a>
pub fn new(args: &'a EVMArgs) -> Self
Sourcepub fn check_json_value_matches_str(
&self,
lhs_json: &JsonValue,
rhs_str: &str,
) -> bool
pub fn check_json_value_matches_str( &self, lhs_json: &JsonValue, rhs_str: &str, ) -> bool
Helper to check if a serde_json::Value matches a target string. Used by compare_array for items within a JSON array.
Arguments:
- lhs_json: The left-hand side value as a JSON value.
- rhs_str: The right-hand side value as a string.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_array(
&self,
lhs_json_array_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_array( &self, lhs_json_array_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares an “array” type parameter.
Arguments:
- lhs_json_array_str: The left-hand side value as a JSON array string.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_u256(
&self,
left_str: &str,
operator: &ComparisonOperator,
right_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_u256( &self, left_str: &str, operator: &ComparisonOperator, right_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares potential U256 LHS value with the RHS literal value Handles decimal and hex inputs for both sides
Arguments:
- left_str: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- right_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_i256(
&self,
left_str: &str,
operator: &ComparisonOperator,
right_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_i256( &self, left_str: &str, operator: &ComparisonOperator, right_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares potential I256 LHS value with the RHS literal value
Arguments:
- left_str: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- right_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_address(
&self,
left: &str,
operator: &ComparisonOperator,
right_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_address( &self, left: &str, operator: &ComparisonOperator, right_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares an EVM address (string) with a literal value based on the operator. Only supports Eq and Ne operators.
Arguments:
- left: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- right_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_string(
&self,
lhs_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_string( &self, lhs_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares a string value with a literal value based on the operator. Supports Eq, Ne, StartsWith, EndsWith, and Contains operators.
Arguments:
- lhs_str: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_fixed_point(
&self,
lhs_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_fixed_point( &self, lhs_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares a fixed-point number (Decimal) with a literal value.
Arguments:
- lhs_str: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_boolean(
&self,
lhs_value_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_boolean( &self, lhs_value_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares a boolean value (true/false) with a literal value. Only supports Eq and Ne operators.
Arguments:
- lhs_value_str: The left-hand side value as a string.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
Sourcepub fn compare_map(
&self,
lhs_json_map_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
pub fn compare_map( &self, lhs_json_map_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
Compares a map (JSON object) value with a literal value.
Arguments:
- lhs_json_map_str: The left-hand side value as a JSON map string.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
- error if the comparison is not supported.
Trait Implementations§
Source§impl ConditionEvaluator for EVMConditionEvaluator<'_>
impl ConditionEvaluator for EVMConditionEvaluator<'_>
Source§fn get_base_param(&self, name: &str) -> Result<(&str, &str), EvaluationError>
fn get_base_param(&self, name: &str) -> Result<(&str, &str), EvaluationError>
This method is used to get the base parameter of the EVM condition evaluator.
Arguments:
- name: The name of the parameter to get.
Returns:
- The base parameter.
Source§fn compare_final_values(
&self,
lhs_kind_str: &str,
lhs_value_str: &str,
operator: &ComparisonOperator,
rhs_literal: &LiteralValue<'_>,
) -> Result<bool, EvaluationError>
fn compare_final_values( &self, lhs_kind_str: &str, lhs_value_str: &str, operator: &ComparisonOperator, rhs_literal: &LiteralValue<'_>, ) -> Result<bool, EvaluationError>
This method is used to compare the final values of the EVM condition evaluator.
Arguments:
- lhs_kind_str: The kind of the left-hand side value.
- lhs_value_str: The value of the left-hand side value.
- operator: The operator to use for the comparison.
- rhs_literal: The right-hand side value.
Returns:
- true if the comparison is true, false otherwise.
- error if the comparison is not supported.
Source§fn get_kind_from_json_value(&self, value: &Value) -> String
fn get_kind_from_json_value(&self, value: &Value) -> String
This method is used to get the kind of the value from the JSON value.
Arguments:
- value: The JSON value to get the kind from.
Returns:
- The kind of the value.
Auto Trait Implementations§
impl<'a> Freeze for EVMConditionEvaluator<'a>
impl<'a> RefUnwindSafe for EVMConditionEvaluator<'a>
impl<'a> Send for EVMConditionEvaluator<'a>
impl<'a> Sync for EVMConditionEvaluator<'a>
impl<'a> Unpin for EVMConditionEvaluator<'a>
impl<'a> UnwindSafe for EVMConditionEvaluator<'a>
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
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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