Trait segment_tree::ops::CommutativeOperation
[−]
[src]
pub trait CommutativeOperation<N>: Operation<N> { }
A marker trait that specifies that an Operation
is commutative, that is: combine(a, b) = combine(b, a)
.
Implementors
impl<T: Add<Output = T> + Copy> CommutativeOperation<T> for Add
impl CommutativeOperation<u8> for Mul
impl CommutativeOperation<u16> for Mul
impl CommutativeOperation<u32> for Mul
impl CommutativeOperation<u64> for Mul
impl CommutativeOperation<i8> for Mul
impl CommutativeOperation<i16> for Mul
impl CommutativeOperation<i32> for Mul
impl CommutativeOperation<i64> for Mul
impl CommutativeOperation<usize> for Mul
impl CommutativeOperation<isize> for Mul
impl CommutativeOperation<f32> for Mul
impl CommutativeOperation<f64> for Mul
impl<T: Copy> CommutativeOperation<Wrapping<T>> for Mul where
Mul: CommutativeOperation<T>,
Wrapping<T>: Mul<Output = Wrapping<T>>,impl CommutativeOperation<u8> for Xor
impl CommutativeOperation<u16> for Xor
impl CommutativeOperation<u32> for Xor
impl CommutativeOperation<u64> for Xor
impl CommutativeOperation<i8> for Xor
impl CommutativeOperation<i16> for Xor
impl CommutativeOperation<i32> for Xor
impl CommutativeOperation<i64> for Xor
impl CommutativeOperation<usize> for Xor
impl CommutativeOperation<isize> for Xor
impl<T: Copy> CommutativeOperation<Wrapping<T>> for Xor where
Xor: CommutativeOperation<T>,
Wrapping<T>: BitXor<Output = Wrapping<T>>,impl CommutativeOperation<u8> for And
impl CommutativeOperation<u16> for And
impl CommutativeOperation<u32> for And
impl CommutativeOperation<u64> for And
impl CommutativeOperation<i8> for And
impl CommutativeOperation<i16> for And
impl CommutativeOperation<i32> for And
impl CommutativeOperation<i64> for And
impl CommutativeOperation<usize> for And
impl CommutativeOperation<isize> for And
impl<T: Copy> CommutativeOperation<Wrapping<T>> for And where
And: CommutativeOperation<T>,
Wrapping<T>: BitAnd<Output = Wrapping<T>>,impl CommutativeOperation<u8> for Or
impl CommutativeOperation<u16> for Or
impl CommutativeOperation<u32> for Or
impl CommutativeOperation<u64> for Or
impl CommutativeOperation<i8> for Or
impl CommutativeOperation<i16> for Or
impl CommutativeOperation<i32> for Or
impl CommutativeOperation<i64> for Or
impl CommutativeOperation<usize> for Or
impl CommutativeOperation<isize> for Or
impl<T: Copy> CommutativeOperation<Wrapping<T>> for Or where
Or: CommutativeOperation<T>,
Wrapping<T>: BitOr<Output = Wrapping<T>>,impl<T: Ord + Copy> CommutativeOperation<T> for Max
impl<T: Ord + Copy> CommutativeOperation<T> for Min
impl<TA, TB, A: CommutativeOperation<TA>, B: CommutativeOperation<TB>> CommutativeOperation<(TA, TB)> for Pair<A, B>
impl<TA: Clone, A: CommutativeOperation<TA>> CommutativeOperation<Option<TA>> for WithIdentity<A>