7 releases
0.3.3 | Apr 8, 2023 |
---|---|
0.3.2 | Apr 8, 2023 |
0.2.1 | Oct 18, 2022 |
0.2.0 | Sep 3, 2022 |
0.1.0 | Aug 18, 2022 |
#28 in #observable
67 downloads per month
Used in mutable
12KB
194 lines
Mutable
Mutable is a crate to keep track of changes in structures
It is still very much WIP
Here is a small example:
use mutable::Mutable;
use mutable_derive::Mutable;
#[derive(Mutable)]
struct Simple {
size: usize,
}
#[derive(Mutable)]
struct Complex {
id: String,
value: Simple,
}
fn main() {
let mut c0 = Complex { id: "a".to_string(), value: Simple { size: 32 } };
let c1 = Complex { id: "b".to_string(), value: Simple { size: 64 } };
assert_eq!(c0.update(c1), vec![
ComplexMutation::Id(("a".to_string(), "b".to_string())),
ComplexMutation::Value(SimpleMutation::Size((32, 64)))
]);
}
lib.rs
:
Just a crate for the derive macros
Dependencies
~1.5MB
~39K SLoC