Crate changeset [−] [src]
Library to generate a changeset.
Usage
Add dependency to Cargo.toml:
[dependencies]
changeset = "0.1"
And in your main.rs or lib.rs:
ⓘThis example is not tested
#[macro_use] extern crate changeset;
Exemple
ⓘThis example is not tested
changeset!(UserChangeSet { /// User's name name: String, age: usize });
This will generate:
struct UserChangeSet { /// User's name pub name: Option<String>, pub age: Option<usize>, } impl UserChangeSet { /// Some doc here pub fn new() -> UserChangeSet { UserChangeSet { name: None, age: None, } } /// User's name pub fn name(mut self, name: String) -> UserChangeSet { self.name = Some(name); self } pub fn age(mut self, age: usize) -> UserChangeSet { self.age = Some(age); self } /// Some doc here pub fn merge(&mut self, rhs: UserChangeSet) { if let Some(name) = rhs.name { self.name = Some(name); } if let Some(age) = rhs.age { self.age = Some(age); } } // I may add some new functions later }
You can also generate public struct just by adding pub
keyword.
Macros
changeset |