Struct sdset::multi::Difference[][src]

pub struct Difference<'a, T: 'a> { /* fields omitted */ }

Represent the difference set operation that will be applied to the slices.

Note that the difference is all the elements that are in the first slice but not in all the others.

Examples

use sdset::multi::OpBuilder;
use sdset::{SetOperation, Set, SetBuf};

let a = Set::new(&[1, 2, 4])?;
let b = Set::new(&[2, 3, 5, 7])?;
let c = Set::new(&[4, 6, 7])?;

let op = OpBuilder::from_vec(vec![a, b, c]).difference();

let res: SetBuf<i32> = op.into_set_buf();
assert_eq!(&res[..], &[1]);

Methods

impl<'a, T> Difference<'a, T>
[src]

Construct one with slices checked to be sorted and deduplicated.

Trait Implementations

impl<'a, T: Clone + 'a> Clone for Difference<'a, T>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a, T: Ord + Clone> SetOperation<&'a T, T> for Difference<'a, T>
[src]

Extend a Vec with the values of the Sets using this set operation.

Create a SetBuf using the SetOperation::extend_vec method.

impl<'a, T: Ord> SetOperation<&'a T, &'a T> for Difference<'a, T>
[src]

Extend a Vec with the values of the Sets using this set operation.

Create a SetBuf using the SetOperation::extend_vec method.

Auto Trait Implementations

impl<'a, T> Send for Difference<'a, T> where
    T: Sync

impl<'a, T> Sync for Difference<'a, T> where
    T: Sync