[−][src]Derive Macro serde_diff_derive::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>, }