use struct_patch::Patch; #[derive(Default, Patch)] #[patch(attribute(derive(Debug, Default)))] struct Item { field_bool: bool, field_int: usize, field_string: String, } fn main() { let item = Item::default(); let new_item = Item { field_int: 7, ..Default::default() }; // Diff on two items to get the patch let patch: ItemPatch = new_item.into_patch_by_diff(item); assert_eq!( format!("{patch:?}"), "ItemPatch { field_bool: None, field_int: Some(7), field_string: None }" ); }