Module ops

Source
Expand description

contains structs representing the supported operations by xpr. These only need to be used if you intend to implement the Fold trait.

Structs§

Add
An Xpr<Add<L,R>> represents addition: l + r
BitAnd
An Xpr<BitAnd<L,R>> represents the bitwise AND: l & r
BitOr
An Xpr<BitOr<L,R>> represents the bitwise OR: Landr: l | r
BitXor
An Xpr<BitXor<L,R>> represents the bitwise XOR: l ^ r
Div
An Xpr<Div<L,R>> represents division: l / r
Mul
An Xpr<Mul<L,R>> represents multiplication: l * r
Neg
An Xpr<Neg<T>> represents negation: - t
Not
An Xpr<Not<T>> represents logical negation: ! t
Rem
An Xpr<Rem<L,R>> represents remainder: l % r
Shl
An Xpr<Shl<L,R>> represents the left shift operator: l << r
Shr
An Xpr<Shr<L,R>> represents the right shift operator: l >> r
Sub
An Xpr<Sub<L,R>> represents subtractio: l - r
Term
An Xpr<Term<T>> instance is a leaf in an expression tree, e.g. a single value of type T with no operations applied to it.

Type Aliases§

OutputOfAdd
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfBitAnd
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfBitOr
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfBitXor
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfDiv
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfMul
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfNeg
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfNot
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfRem
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfShl
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfShr
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.
OutputOfSub
The output of the given operation for two operands L, R where L and R are operation structs from this module, e.g. e.g. OutputOfXXX<Term<u32>, OutputOfMul<Term<bool>, Term<f64>>>.