Trait dipa::Diffable[][src]

pub trait Diffable<'s, 'e, Other: ?Sized> {
    type Delta;
    type DeltaOwned;
    fn create_delta_towards(
        &'s self,
        end_state: &'e Other
    ) -> CreatedDelta<Self::Delta>; }

Allows a type to be diffed with another type.

Associated Types

type Delta[src]

This will typically hold references to data from the structs that are being diffed.

type DeltaOwned[src]

This will typically be an owned version of Self::Delta.

Loading content...

Required methods

fn create_delta_towards(
    &'s self,
    end_state: &'e Other
) -> CreatedDelta<Self::Delta>
[src]

Diff self with some target end state, generating a patch that would convert self -> end_state.

Loading content...

Implementations on Foreign Types

impl<'s, 'e, T: 'e + Diffable<'s, 'e, T>> Diffable<'s, 'e, Vec<T, Global>> for Vec<T> where
    T: PartialEq,
    &'e T: Serialize
[src]

type Delta = Vec<SequenceModificationDelta<'e, T>>

type DeltaOwned = Vec<SequenceModificationDeltaOwned<T>>

impl<'s, 'e, T: 'e + Diffable<'s, 'e, T>> Diffable<'s, 'e, [T]> for &[T] where
    T: PartialEq,
    &'e T: Serialize
[src]

type Delta = Vec<SequenceModificationDelta<'e, T>>

type DeltaOwned = Vec<SequenceModificationDeltaOwned<T>>

impl<'s, 'e> Diffable<'s, 'e, bool> for bool[src]

type Delta = bool

type DeltaOwned = bool

impl<'s, 'e, 'a, T> Diffable<'s, 'e, Cow<'a, T>> for Cow<'a, T> where
    T: ToOwned,
    T: ?Sized,
    T: Diffable<'s, 'e, T>, 
[src]

type Delta = <T as Diffable<'s, 'e, T>>::Delta

type DeltaOwned = <T as Diffable<'s, 'e, T>>::DeltaOwned

impl<'s, 'e> Diffable<'s, 'e, f32> for f32[src]

type Delta = Option<f32>

type DeltaOwned = Option<f32>

impl<'s, 'e> Diffable<'s, 'e, f64> for f64[src]

type Delta = Option<f64>

type DeltaOwned = Option<f64>

impl<'s, 'e> Diffable<'s, 'e, u8> for u8[src]

type Delta = u8

type DeltaOwned = u8

impl<'s, 'e> Diffable<'s, 'e, i8> for i8[src]

type Delta = i8

type DeltaOwned = i8

impl<'s, 'e> Diffable<'s, 'e, u16> for u16[src]

type Delta = Option<u16>

type DeltaOwned = Option<u16>

impl<'s, 'e> Diffable<'s, 'e, i16> for i16[src]

type Delta = Option<i16>

type DeltaOwned = Option<i16>

impl<'s, 'e> Diffable<'s, 'e, u32> for u32[src]

type Delta = Option<u32>

type DeltaOwned = Option<u32>

impl<'s, 'e> Diffable<'s, 'e, i32> for i32[src]

type Delta = Option<i32>

type DeltaOwned = Option<i32>

impl<'s, 'e> Diffable<'s, 'e, u64> for u64[src]

type Delta = Option<u64>

type DeltaOwned = Option<u64>

impl<'s, 'e> Diffable<'s, 'e, i64> for i64[src]

type Delta = Option<i64>

type DeltaOwned = Option<i64>

impl<'s, 'e> Diffable<'s, 'e, u128> for u128[src]

type Delta = Option<u128>

type DeltaOwned = Option<u128>

impl<'s, 'e> Diffable<'s, 'e, i128> for i128[src]

type Delta = Option<i128>

type DeltaOwned = Option<i128>

impl<'s, 'e, K, V> Diffable<'s, 'e, HashMap<K, V, RandomState>> for HashMap<K, V> where
    K: 's + 'e + Eq + Hash,
    V: 'e + Diffable<'s, 'e, V>,
    <V as Diffable<'s, 'e, V>>::Delta: Serialize,
    <V as Diffable<'s, 'e, V>>::DeltaOwned: DeserializeOwned
[src]

type Delta = MapDelta<'s, 'e, K, V>

type DeltaOwned = MapDeltaOwned<'s, 'e, K, V>

impl<'s, 'e, K, V> Diffable<'s, 'e, BTreeMap<K, V>> for BTreeMap<K, V> where
    K: 's + 'e + Eq + Hash + Ord,
    V: 'e + Diffable<'s, 'e, V>,
    <V as Diffable<'s, 'e, V>>::Delta: Serialize,
    <V as Diffable<'s, 'e, V>>::DeltaOwned: DeserializeOwned
[src]

type Delta = MapDelta<'s, 'e, K, V>

type DeltaOwned = MapDeltaOwned<'s, 'e, K, V>

impl<'s, 'e> Diffable<'s, 'e, ()> for ()[src]

type Delta = ()

type DeltaOwned = ()

impl<'s, 'e, T: Diffable<'s, 'e, T>> Diffable<'s, 'e, Option<T>> for Option<T> where
    T: 'e,
    <T as Diffable<'s, 'e, T>>::Delta: Serialize,
    <T as Diffable<'s, 'e, T>>::DeltaOwned: DeserializeOwned
[src]

type Delta = OptionDelta<'s, 'e, T>

type DeltaOwned = OptionDeltaOwned<'s, 'e, T>

impl<'s, 'e, K> Diffable<'s, 'e, HashSet<K, RandomState>> for HashSet<K> where
    K: 's + 'e + Eq + Hash
[src]

type Delta = SetDelta<'s, 'e, K>

type DeltaOwned = SetDeltaOwned<K>

impl<'s, 'e, K> Diffable<'s, 'e, BTreeSet<K>> for BTreeSet<K> where
    K: 's + 'e + Eq + Hash + Ord
[src]

type Delta = SetDelta<'s, 'e, K>

type DeltaOwned = SetDeltaOwned<K>

impl<'s, 'e> Diffable<'s, 'e, String> for String[src]

type Delta = Vec<SequenceModificationDelta<'e, u8>>

type DeltaOwned = Vec<SequenceModificationDeltaOwned<u8>>

impl<'s, 'e> Diffable<'s, 'e, str> for str[src]

type Delta = Vec<SequenceModificationDelta<'e, u8>>

type DeltaOwned = Vec<SequenceModificationDeltaOwned<u8>>

impl<'s, 'e, A: Diffable<'s, 'e, A>, B: Diffable<'s, 'e, B>> Diffable<'s, 'e, (A, B)> for (A, B)[src]

type Delta = Delta2<<A as Diffable<'s, 'e, A>>::Delta, <B as Diffable<'s, 'e, B>>::Delta>

type DeltaOwned = DeltaOwned2<<A as Diffable<'s, 'e, A>>::DeltaOwned, <B as Diffable<'s, 'e, B>>::DeltaOwned>

Loading content...

Implementors

Loading content...