Crates.io | mutable |
lib.rs | mutable |
version | 0.2.8 |
source | src |
created_at | 2022-08-18 15:26:44.859412 |
updated_at | 2023-04-08 13:20:01.899597 |
description | Mutable is a crate to keep track of changes in structures |
homepage | |
repository | https://gitlab.com/Thechi2000/mutable |
max_upload_size | |
id | 648194 |
size | 16,265 |
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)))
]);
}