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

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

Provided methods

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

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

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

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

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

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

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

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

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

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

fn reduce_cast_expression(&mut self, input: &CastExpression<'a>, inner: T) -> T[src]

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

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

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

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

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

Loading content...

Implementors

impl<'a> MonoidalReducerExpression<'a, BoolAnd> for ReturnPathReducer[src]

Loading content...