Skip to main content

Diffable

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".

Implementations on Foreign Types§

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, 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: 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: 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, 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 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: 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: 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 Vec<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> Diffable<'a> for ()

Source§

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

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> 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 usize

Source§

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

Source§

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

Implementors§