Struct segment_tree::ops::Xor
[−]
[src]
pub struct Xor;
Each node contains the bitwise xor of the interval it represents.
Trait Implementations
impl Operation<u8> for Xor
[src]
fn combine(a: &u8, b: &u8) -> u8
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<u8> for Xor
[src]
impl Identity<u8> for Xor
[src]
impl Inverse<u8> for Xor
[src]
impl Operation<Wrapping<u8>> for Xor
[src]
fn combine(a: &Wrapping<u8>, b: &Wrapping<u8>) -> Wrapping<u8>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<u8>> for Xor
[src]
impl Identity<Wrapping<u8>> for Xor
[src]
impl Inverse<Wrapping<u8>> for Xor
[src]
fn uncombine(a: &mut Wrapping<u8>, b: &Wrapping<u8>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<u16> for Xor
[src]
fn combine(a: &u16, b: &u16) -> u16
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<u16> for Xor
[src]
impl Identity<u16> for Xor
[src]
impl Inverse<u16> for Xor
[src]
impl Operation<Wrapping<u16>> for Xor
[src]
fn combine(a: &Wrapping<u16>, b: &Wrapping<u16>) -> Wrapping<u16>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<u16>> for Xor
[src]
impl Identity<Wrapping<u16>> for Xor
[src]
impl Inverse<Wrapping<u16>> for Xor
[src]
fn uncombine(a: &mut Wrapping<u16>, b: &Wrapping<u16>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<u32> for Xor
[src]
fn combine(a: &u32, b: &u32) -> u32
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<u32> for Xor
[src]
impl Identity<u32> for Xor
[src]
impl Inverse<u32> for Xor
[src]
impl Operation<Wrapping<u32>> for Xor
[src]
fn combine(a: &Wrapping<u32>, b: &Wrapping<u32>) -> Wrapping<u32>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<u32>> for Xor
[src]
impl Identity<Wrapping<u32>> for Xor
[src]
impl Inverse<Wrapping<u32>> for Xor
[src]
fn uncombine(a: &mut Wrapping<u32>, b: &Wrapping<u32>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<u64> for Xor
[src]
fn combine(a: &u64, b: &u64) -> u64
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<u64> for Xor
[src]
impl Identity<u64> for Xor
[src]
impl Inverse<u64> for Xor
[src]
impl Operation<Wrapping<u64>> for Xor
[src]
fn combine(a: &Wrapping<u64>, b: &Wrapping<u64>) -> Wrapping<u64>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<u64>> for Xor
[src]
impl Identity<Wrapping<u64>> for Xor
[src]
impl Inverse<Wrapping<u64>> for Xor
[src]
fn uncombine(a: &mut Wrapping<u64>, b: &Wrapping<u64>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<i8> for Xor
[src]
fn combine(a: &i8, b: &i8) -> i8
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<i8> for Xor
[src]
impl Identity<i8> for Xor
[src]
impl Inverse<i8> for Xor
[src]
impl Operation<Wrapping<i8>> for Xor
[src]
fn combine(a: &Wrapping<i8>, b: &Wrapping<i8>) -> Wrapping<i8>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<i8>> for Xor
[src]
impl Identity<Wrapping<i8>> for Xor
[src]
impl Inverse<Wrapping<i8>> for Xor
[src]
fn uncombine(a: &mut Wrapping<i8>, b: &Wrapping<i8>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<i16> for Xor
[src]
fn combine(a: &i16, b: &i16) -> i16
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<i16> for Xor
[src]
impl Identity<i16> for Xor
[src]
impl Inverse<i16> for Xor
[src]
impl Operation<Wrapping<i16>> for Xor
[src]
fn combine(a: &Wrapping<i16>, b: &Wrapping<i16>) -> Wrapping<i16>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<i16>> for Xor
[src]
impl Identity<Wrapping<i16>> for Xor
[src]
impl Inverse<Wrapping<i16>> for Xor
[src]
fn uncombine(a: &mut Wrapping<i16>, b: &Wrapping<i16>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<i32> for Xor
[src]
fn combine(a: &i32, b: &i32) -> i32
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<i32> for Xor
[src]
impl Identity<i32> for Xor
[src]
impl Inverse<i32> for Xor
[src]
impl Operation<Wrapping<i32>> for Xor
[src]
fn combine(a: &Wrapping<i32>, b: &Wrapping<i32>) -> Wrapping<i32>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<i32>> for Xor
[src]
impl Identity<Wrapping<i32>> for Xor
[src]
impl Inverse<Wrapping<i32>> for Xor
[src]
fn uncombine(a: &mut Wrapping<i32>, b: &Wrapping<i32>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<i64> for Xor
[src]
fn combine(a: &i64, b: &i64) -> i64
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<i64> for Xor
[src]
impl Identity<i64> for Xor
[src]
impl Inverse<i64> for Xor
[src]
impl Operation<Wrapping<i64>> for Xor
[src]
fn combine(a: &Wrapping<i64>, b: &Wrapping<i64>) -> Wrapping<i64>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<i64>> for Xor
[src]
impl Identity<Wrapping<i64>> for Xor
[src]
impl Inverse<Wrapping<i64>> for Xor
[src]
fn uncombine(a: &mut Wrapping<i64>, b: &Wrapping<i64>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<usize> for Xor
[src]
fn combine(a: &usize, b: &usize) -> usize
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<usize> for Xor
[src]
impl Identity<usize> for Xor
[src]
impl Inverse<usize> for Xor
[src]
fn uncombine(a: &mut usize, b: &usize)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<Wrapping<usize>> for Xor
[src]
fn combine(a: &Wrapping<usize>, b: &Wrapping<usize>) -> Wrapping<usize>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<Wrapping<usize>> for Xor
[src]
impl Identity<Wrapping<usize>> for Xor
[src]
impl Inverse<Wrapping<usize>> for Xor
[src]
fn uncombine(a: &mut Wrapping<usize>, b: &Wrapping<usize>)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<isize> for Xor
[src]
fn combine(a: &isize, b: &isize) -> isize
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more
impl CommutativeOperation<isize> for Xor
[src]
impl Identity<isize> for Xor
[src]
impl Inverse<isize> for Xor
[src]
fn uncombine(a: &mut isize, b: &isize)
Returns some value such that combine(uncombine(a, b), b) = a
.
impl Operation<Wrapping<isize>> for Xor
[src]
fn combine(a: &Wrapping<isize>, b: &Wrapping<isize>) -> Wrapping<isize>
The operation that is performed to combine two intervals in the segment tree. Read more
fn combine_mut(a: &mut N, b: &N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_mut2(a: &N, b: &mut N)
Replace the value in a with combine(a, b)
. This function exists to allow certain optimizations and by default simply calls combine
. Read more
fn combine_left(a: N, b: &N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut
. Read more
fn combine_right(a: &N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_mut2
. Read more
fn combine_both(a: N, b: N) -> N
Must return the same as combine
. This function exists to allow certain optimizations and by default simply calls combine_left
. Read more