Patched
A macro that generates patch struct.
use Patch;
// Will generates
Usage example:
let mut value = Foo
value.patch;
assert_eq!;
A macro that generates patch struct.
use patched::Patch;
#[derive(Patch)]
struct Foo {
a: u8,
b: String,
}
// Will generates
struct FooPatch {
a: Option<u8>
b: Option<String>,
}
impl Default for FooPatch {
/* ... */
}
impl Patch<FooPatch> for Foo {
/* ... */
}
Usage example:
let mut value = Foo {
a: 10,
b: String::from("Hello");
}
value.patch(FooPatch {
a: Some(99),
..Default::default()
});
assert_eq!(
value,
Foo {
a: 99,
b: String::from("Hello");
}
);