| Crates.io | persistent-structs |
| lib.rs | persistent-structs |
| version | 0.1.1 |
| created_at | 2022-11-12 10:45:32.489956+00 |
| updated_at | 2022-11-12 10:51:03.383826+00 |
| description | A Macro that generate helper functions to make non-mutable structs nicer to use |
| homepage | |
| repository | https://github.com/KnorrFG/persistent_structs |
| max_upload_size | |
| id | 713554 |
| size | 4,979 |
A small derive Macro for structs, that generates a with_<name> and update_<name>
method for each field of a struct, e.g:
use persistent_structs::PersistentStruct;
#[derive(PersistentStruct, PartialEq)]
struct Foo {
pub foo: u8,
}
fn main() {
let foo = Foo { foo: 1 };
let foo = foo.with_foo(5);
assert!(foo == Foo { foo: 5 });
let foo = foo.update_foo(|x| x + 1);
assert!(foo.foo == 6);
}
install via:
cargo add persistent-structs
(requires cargo-add, otherwise figure out the current version number in at docs.rs, and add it manually)