Trait IterDiff

Source
pub trait IterDiff<T>: IntoIterator<Item = T> + Sealed<T> {
    // Required method
    fn iter_diff<U, Rhs>(
        self,
        rhs: Rhs,
    ) -> DiffIter<Self::IntoIter, Rhs::IntoIter> 
       where T: PartialEq<U>,
             Rhs: IntoIterator<Item = U>;
}
Expand description

Iterate through the differences between each element.

Required Methods§

Source

fn iter_diff<U, Rhs>(self, rhs: Rhs) -> DiffIter<Self::IntoIter, Rhs::IntoIter>
where T: PartialEq<U>, Rhs: IntoIterator<Item = U>,

Return an iterator through the differences of each element.

use iter_diff::prelude::*;

let a = [0, 1, 2];
let b = [0, 3, 2, 3];

let diffs: Vec<_> = a.iter_diff(b).collect();
assert_eq!(diffs.len(), 4);

assert_eq!(diffs[0], Diff::Keep);
assert_eq!(diffs[1], Diff::Change(3));
assert_eq!(diffs[2], Diff::Keep);
assert_eq!(diffs[3], Diff::Add(3));

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T, Lhs> IterDiff<T> for Lhs
where Lhs: IntoIterator<Item = T>,