10 releases
0.2.8 | Apr 8, 2023 |
---|---|
0.2.7 | Apr 8, 2023 |
0.2.4 | Oct 19, 2022 |
0.2.0 | Sep 3, 2022 |
0.1.0 | Aug 18, 2022 |
#1407 in Data structures
66 downloads per month
18KB
365 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)))
]);
}
Dependencies
~2MB
~42K SLoC