[−][src]Derive Macro serde_diff::SerdeDiff
#[derive(SerdeDiff)]
{
// Attributes available to this derive:
#[serde_diff]
}Examples
Minimal example of implementing diff support for a struct
use serde_diff::SerdeDiff; use serde::{Serialize, Deserialize}; #[derive(SerdeDiff, Serialize, Deserialize)] struct MySimpleStruct { val: u32, }
Example of an opaque (non-recursive diff) implementation of SerdeDiff using #[serde_diff(opaque)] on the struct.
Field types are not required to implement SerdeDiff in this case, only Serialize + Deserialize + PartialEq.
use serde_diff::SerdeDiff; use serde::{Serialize, Deserialize}; #[derive(SerdeDiff, Serialize, Deserialize, PartialEq)] #[serde_diff(opaque)] struct OpaqueTest(i32);
Example of a struct with an opaque field using #[serde_diff(opaque)] on a field.
use serde_diff::SerdeDiff; use serde::{Serialize, Deserialize}; #[derive(SerdeDiff, Clone, Serialize, Deserialize, Debug)] struct MyInnerStruct { #[serde_diff(opaque)] heap: std::collections::HashSet<i32>, }