Trait identity_diff::Diff
source · pub trait Diff: Clone + Debug + PartialEq {
type Type: Sized + Clone + Debug + PartialEq + for<'de> Deserialize<'de> + Serialize;
// Required methods
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§
sourcefn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
Finds the difference between two types; self
and other
and returns Self::Type
sourcefn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
Merges a Self::Type
with Self
Implementations on Foreign Types§
source§impl Diff for i32
impl Diff for i32
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for i128
impl Diff for i128
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for u16
impl Diff for u16
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for u32
impl Diff for u32
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for BTreeMap<String, Value>
impl Diff for BTreeMap<String, Value>
§type Type = DiffHashMap<String, Value>
type Type = DiffHashMap<String, Value>
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for isize
impl Diff for isize
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for ()
impl Diff for ()
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl<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>
source§fn 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.
source§fn 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>
.
source§impl Diff for u64
impl Diff for u64
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for usize
impl Diff for usize
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for bool
impl Diff for bool
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for char
impl Diff for char
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for i16
impl Diff for i16
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for u128
impl Diff for u128
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl 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
.
source§fn 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.
source§fn 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
.
source§impl Diff for u8
impl Diff for u8
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for i64
impl Diff for i64
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§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,
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>
source§fn 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>
source§fn 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
.
source§impl 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
source§fn 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.
source§fn 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
.
source§impl Diff for i8
impl Diff for i8
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl<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>
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for f32
impl Diff for f32
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl Diff for f64
impl Diff for f64
source§fn diff(&self, other: &Self) -> Result<Self::Type>
fn diff(&self, other: &Self) -> Result<Self::Type>
source§fn merge(&self, diff: Self::Type) -> Result<Self>
fn merge(&self, diff: Self::Type) -> Result<Self>
source§impl<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>
source§fn 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.
source§fn 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
.