diffus

Trait Diffable

Source
pub trait Diffable<'a> {
    type Diff: 'a;

    // Required method
    fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>;
}

Required Associated Types§

Source

type Diff: 'a

Required Methods§

Source

fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>

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.

Implementations on Foreign Types§

Source§

impl<'a> Diffable<'a> for bool

Source§

type Diff = (&'a bool, &'a bool)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for char

Source§

type Diff = (&'a char, &'a char)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for f32

Source§

type Diff = (&'a f32, &'a f32)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for f64

Source§

type Diff = (&'a f64, &'a f64)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for i8

Source§

type Diff = (&'a i8, &'a i8)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for i16

Source§

type Diff = (&'a i16, &'a i16)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for i32

Source§

type Diff = (&'a i32, &'a i32)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for i64

Source§

type Diff = (&'a i64, &'a i64)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for isize

Source§

type Diff = (&'a isize, &'a isize)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for str

Source§

type Diff = Vec<Edit>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for u8

Source§

type Diff = (&'a u8, &'a u8)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for u16

Source§

type Diff = (&'a u16, &'a u16)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for u32

Source§

type Diff = (&'a u32, &'a u32)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for u64

Source§

type Diff = (&'a u64, &'a u64)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for ()

Source§

type Diff = (&'a (), &'a ())

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for usize

Source§

type Diff = (&'a usize, &'a usize)

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a> Diffable<'a> for String

Source§

type Diff = <str as Diffable<'a>>::Diff

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, K: Eq + Ord + 'a, V: Diffable<'a> + 'a> Diffable<'a> for BTreeMap<K, V>

Source§

type Diff = BTreeMap<&'a K, Edit<'a, V>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, K: Eq + Hash + 'a, V: Diffable<'a> + 'a> Diffable<'a> for HashMap<K, V>

Source§

type Diff = HashMap<&'a K, Edit<'a, V>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, K: Diffable<'a> + Eq + Ord + 'a> Diffable<'a> for BTreeSet<K>

Source§

type Diff = BTreeMap<&'a K, Edit<'a, K>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, K: Diffable<'a> + Eq + Hash + 'a> Diffable<'a> for HashSet<K>

Source§

type Diff = HashMap<&'a K, Edit<'a, K>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, T: Diffable<'a> + 'a> Diffable<'a> for Option<T>

Source§

type Diff = Edit<'a, Option<T>, <T as Diffable<'a>>::Diff>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, T: Diffable<'a> + ?Sized + 'a> Diffable<'a> for &'a T

Source§

type Diff = <T as Diffable<'a>>::Diff

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>

Source§

impl<'a, T: Diffable<'a> + ?Sized + 'a> Diffable<'a> for Box<T>

Source§

type Diff = Box<<T as Diffable<'a>>::Diff>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>

Source§

impl<'a, T: Diffable<'a> + ?Sized + 'a> Diffable<'a> for Rc<T>

Source§

type Diff = Rc<<T as Diffable<'a>>::Diff>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>

Source§

impl<'a, T: Diffable<'a> + ?Sized + 'a> Diffable<'a> for Arc<T>

Source§

type Diff = Arc<<T as Diffable<'a>>::Diff>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'a, Self>

Source§

impl<'a, T: Same + Diffable<'a> + 'a> Diffable<'a> for BinaryHeap<T>

Source§

type Diff = Vec<Edit<'a, T, <T as Diffable<'a>>::Diff>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, T: Same + Diffable<'a> + 'a> Diffable<'a> for LinkedList<T>

Source§

type Diff = Vec<Edit<'a, T, <T as Diffable<'a>>::Diff>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, T: Same + Diffable<'a> + 'a> Diffable<'a> for VecDeque<T>

Source§

type Diff = Vec<Edit<'a, T, <T as Diffable<'a>>::Diff>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Source§

impl<'a, T: Same + Diffable<'a> + 'a> Diffable<'a> for Vec<T>

Source§

type Diff = Vec<Edit<'a, T, <T as Diffable<'a>>::Diff>>

Source§

fn diff(&'a self, other: &'a Self) -> Edit<'_, Self>

Implementors§