Trait leo_asg::reducer::MonoidalReducerExpression[][src]

pub trait MonoidalReducerExpression<T: Monoid> {
    fn reduce_expression(&mut self, input: &Arc<Expression>, value: T) -> T { ... }
fn reduce_array_access(
        &mut self,
        input: &ArrayAccessExpression,
        array: T,
        index: T
    ) -> T { ... }
fn reduce_array_init(
        &mut self,
        input: &ArrayInitExpression,
        element: T
    ) -> T { ... }
fn reduce_array_inline(
        &mut self,
        input: &ArrayInlineExpression,
        elements: Vec<T>
    ) -> T { ... }
fn reduce_array_range_access(
        &mut self,
        input: &ArrayRangeAccessExpression,
        array: T,
        left: Option<T>,
        right: Option<T>
    ) -> T { ... }
fn reduce_binary(
        &mut self,
        input: &BinaryExpression,
        left: T,
        right: T
    ) -> T { ... }
fn reduce_call(
        &mut self,
        input: &CallExpression,
        target: Option<T>,
        arguments: Vec<T>
    ) -> T { ... }
fn reduce_circuit_access(
        &mut self,
        input: &CircuitAccessExpression,
        target: Option<T>
    ) -> T { ... }
fn reduce_circuit_init(
        &mut self,
        input: &CircuitInitExpression,
        values: Vec<T>
    ) -> T { ... }
fn reduce_ternary_expression(
        &mut self,
        input: &TernaryExpression,
        condition: T,
        if_true: T,
        if_false: T
    ) -> T { ... }
fn reduce_constant(&mut self, input: &Constant) -> T { ... }
fn reduce_tuple_access(
        &mut self,
        input: &TupleAccessExpression,
        tuple_ref: T
    ) -> T { ... }
fn reduce_tuple_init(
        &mut self,
        input: &TupleInitExpression,
        values: Vec<T>
    ) -> T { ... }
fn reduce_unary(&mut self, input: &UnaryExpression, inner: T) -> T { ... }
fn reduce_variable_ref(&mut self, input: &VariableRef) -> T { ... } }

Provided methods

fn reduce_expression(&mut self, input: &Arc<Expression>, value: T) -> T[src]

fn reduce_array_access(
    &mut self,
    input: &ArrayAccessExpression,
    array: T,
    index: T
) -> T
[src]

fn reduce_array_init(&mut self, input: &ArrayInitExpression, element: T) -> T[src]

fn reduce_array_inline(
    &mut self,
    input: &ArrayInlineExpression,
    elements: Vec<T>
) -> T
[src]

fn reduce_array_range_access(
    &mut self,
    input: &ArrayRangeAccessExpression,
    array: T,
    left: Option<T>,
    right: Option<T>
) -> T
[src]

fn reduce_binary(&mut self, input: &BinaryExpression, left: T, right: T) -> T[src]

fn reduce_call(
    &mut self,
    input: &CallExpression,
    target: Option<T>,
    arguments: Vec<T>
) -> T
[src]

fn reduce_circuit_access(
    &mut self,
    input: &CircuitAccessExpression,
    target: Option<T>
) -> T
[src]

fn reduce_circuit_init(
    &mut self,
    input: &CircuitInitExpression,
    values: Vec<T>
) -> T
[src]

fn reduce_ternary_expression(
    &mut self,
    input: &TernaryExpression,
    condition: T,
    if_true: T,
    if_false: T
) -> T
[src]

fn reduce_constant(&mut self, input: &Constant) -> T[src]

fn reduce_tuple_access(
    &mut self,
    input: &TupleAccessExpression,
    tuple_ref: T
) -> T
[src]

fn reduce_tuple_init(
    &mut self,
    input: &TupleInitExpression,
    values: Vec<T>
) -> T
[src]

fn reduce_unary(&mut self, input: &UnaryExpression, inner: T) -> T[src]

fn reduce_variable_ref(&mut self, input: &VariableRef) -> T[src]

Loading content...

Implementors

impl MonoidalReducerExpression<BoolAnd> for ReturnPathReducer[src]

Loading content...