Trait identity_diff::Diff
source · [−]pub trait Diff: Clone + Debug + PartialEq {
type Type: Sized + Clone + Debug + PartialEq + for<'de> Deserialize<'de> + Serialize;
fn diff(&self, other: &Self) -> Result<Self::Type>;
fn merge(&self, diff: Self::Type) -> Result<Self>;
fn from_diff(diff: Self::Type) -> Result<Self>;
fn into_diff(self) -> Result<Self::Type>;
}Expand description
The primary Diff Trait type.
Required Associated Types
Required Methods
Finds the difference between two types; self and other and returns Self::Type
Merges a Self::Type with Self
Converts a diff of type Self::Type to a Self.
Implementations on Foreign Types
sourceimpl<K, V> Diff for HashMap<K, V>where
K: Clone + Debug + PartialEq + Eq + Hash + Diff + for<'de> Deserialize<'de> + Serialize,
V: Clone + Debug + PartialEq + Diff + for<'de> Deserialize<'de> + Serialize,
impl<K, V> Diff for HashMap<K, V>where
K: Clone + Debug + PartialEq + Eq + Hash + Diff + for<'de> Deserialize<'de> + Serialize,
V: Clone + Debug + PartialEq + Diff + for<'de> Deserialize<'de> + Serialize,
Diff Implementation on a HashMap<K, V>
type Type = DiffHashMap<K, V>
👎Deprecated since 0.5.0: diff chain features are slated for removal
type Type = DiffHashMap<K, V>
the Diff type of the HashMap<K, V>
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn diff(&self, other: &Self) -> Result<Self::Type>
Diffs two HashMaps; self and other and creates a DiffHashMap<K, V>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges the changes in a DiffHashMap<K, V>, diff with a HashMap<K, V>, self.
sourceimpl<T> Diff for HashSet<T>where
T: Debug + Clone + PartialEq + Eq + Diff + Hash + for<'de> Deserialize<'de> + Serialize,
impl<T> Diff for HashSet<T>where
T: Debug + Clone + PartialEq + Eq + Diff + Hash + for<'de> Deserialize<'de> + Serialize,
type Type = DiffHashSet<T>
type Type = DiffHashSet<T>
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for i8
impl Diff for i8
type Type = Diffi8
type Type = Diffi8
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for i16
impl Diff for i16
type Type = Diffi16
type Type = Diffi16
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for i32
impl Diff for i32
type Type = Diffi32
type Type = Diffi32
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for i64
impl Diff for i64
type Type = Diffi64
type Type = Diffi64
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for i128
impl Diff for i128
type Type = Diffi128
type Type = Diffi128
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for isize
impl Diff for isize
type Type = DiffiSize
type Type = DiffiSize
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for u8
impl Diff for u8
type Type = Diffu8
type Type = Diffu8
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for u16
impl Diff for u16
type Type = Diffu16
type Type = Diffu16
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for u32
impl Diff for u32
type Type = Diffu32
type Type = Diffu32
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for u64
impl Diff for u64
type Type = Diffu64
type Type = Diffu64
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for u128
impl Diff for u128
type Type = Diffu128
type Type = Diffu128
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for usize
impl Diff for usize
type Type = DiffuSize
type Type = DiffuSize
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for f32
impl Diff for f32
type Type = DiffF32
type Type = DiffF32
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for f64
impl Diff for f64
type Type = DiffF64
type Type = DiffF64
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for bool
impl Diff for bool
type Type = Diffbool
type Type = Diffbool
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for char
impl Diff for char
type Type = Diffchar
type Type = Diffchar
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for ()
impl Diff for ()
type Type = Diffunit
type Type = Diffunit
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl Diff for BTreeMap<String, Value>
impl Diff for BTreeMap<String, Value>
type Type = DiffHashMap<String, Value>
type Type = DiffHashMap<String, Value>
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
sourceimpl<T> Diff for Option<T>where
T: Diff + Clone + Debug + PartialEq + Default + for<'de> Deserialize<'de> + Serialize,
impl<T> Diff for Option<T>where
T: Diff + Clone + Debug + PartialEq + Default + for<'de> Deserialize<'de> + Serialize,
Diff Implementation for Option<T>
type Type = DiffOption<T>
👎Deprecated since 0.5.0: diff chain features are slated for removal
type Type = DiffOption<T>
The Corresponding Diff type for Option<T>
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn diff(&self, other: &Self) -> Result<Self::Type>
Compares two Option<T> types; self and other and finds the Difference between them, returning a
DiffOption<T> type.
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges a DiffOption<T>; diff type with an Option<T> type; self.
sourceimpl Diff for String
impl Diff for String
Diff trait implementation for String.
type Type = DiffString
👎Deprecated since 0.5.0: diff chain features are slated for removal
type Type = DiffString
Diff type for String
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn diff(&self, other: &Self) -> Result<Self::Type>
compares two String types; self, other and returns a DiffString type.
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges a DiffString; diff with a String; self.
sourceimpl Diff for Value
impl Diff for Value
The Diff implementation for serde_json::Value.
type Type = DiffValue
👎Deprecated since 0.5.0: diff chain features are slated for removal
type Type = DiffValue
The Diff Type for serde_json::Value.
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn diff(&self, other: &Self) -> Result<Self::Type>
Compares two serde_json::Value types; self, diff and outputs a DiffValue type.
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges a DiffValue; diff with self; a serde_json::Value to create a new serde_json::Value.
sourceimpl<T> Diff for Vec<T>where
T: Clone + Debug + PartialEq + Diff + for<'de> Deserialize<'de> + Serialize,
impl<T> Diff for Vec<T>where
T: Clone + Debug + PartialEq + Diff + for<'de> Deserialize<'de> + Serialize,
Diff trait implementation for Vec<T>
type Type = DiffVec<T>
👎Deprecated since 0.5.0: diff chain features are slated for removal
type Type = DiffVec<T>
Corresponding Diff Type for Vec<T>
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn diff(&self, other: &Self) -> Result<Self::Type>
Compares two Vec<T> types; self, other and returns a DiffVec<T> type.
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
👎Deprecated since 0.5.0: diff chain features are slated for removal
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges a DiffVec<T>; diff with self; a Vec<T> to create a new Vec<T>.