pub struct Diff<'a, 'b, T> { /* private fields */ }
Expand description
A serializable structure that will produce a sequence of diff commands when serialized.
You can pass this to a serializer, or use the convenience method diff
to pass your serializer along with old/new values to use when serializing the diff.
§Examples
use serde_diff::{SerdeDiff, Diff};
use serde::{Serialize, Deserialize};
#[derive(SerdeDiff, Serialize, Deserialize, PartialEq)]
struct Test {
a: i32,
}
let diff = Diff::serializable(&Test { a: 3 }, &Test { a: 5 });
Implementations§
Source§impl<'a, 'b, T: SerdeDiff + 'a + 'b> Diff<'a, 'b, T>
impl<'a, 'b, T: SerdeDiff + 'a + 'b> Diff<'a, 'b, T>
Sourcepub fn serializable(old: &'a T, new: &'b T) -> Self
pub fn serializable(old: &'a T, new: &'b T) -> Self
Create a serializable Diff, which when serialized will write the differences between the old and new value into the serializer in the form of a sequence of diff commands
Sourcepub fn diff<S: Serializer>(
serializer: S,
old: &'a T,
new: &'b T,
) -> Result<S::Ok, S::Error>
pub fn diff<S: Serializer>( serializer: S, old: &'a T, new: &'b T, ) -> Result<S::Ok, S::Error>
Writes the differences between the old and new value into the given serializer in the form of a sequence of diff commands
Sourcepub fn has_changes(&self) -> bool
pub fn has_changes(&self) -> bool
True if a change was detected during the diff
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'b, T> !Freeze for Diff<'a, 'b, T>
impl<'a, 'b, T> !RefUnwindSafe for Diff<'a, 'b, T>
impl<'a, 'b, T> Send for Diff<'a, 'b, T>where
T: Sync,
impl<'a, 'b, T> !Sync for Diff<'a, 'b, T>
impl<'a, 'b, T> Unpin for Diff<'a, 'b, T>
impl<'a, 'b, T> UnwindSafe for Diff<'a, 'b, T>where
T: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more