# changeset Library to generate a changeset. ## Usage Add dependency to Cargo.toml: ```toml [dependencies] changeset = "0.1" ``` And in your main.rs or lib.rs: ```rust #[macro_use] extern crate changeset; ``` ## Exemple ```rust changeset!(UserChangeSet { /// User's name name: String, age: usize }); ``` This will generate: ```rust struct UserChangeSet { /// User's name pub name: Option, pub age: Option, } impl UserChangeSet { #[allow(missing_docs)] 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 } #[allow(missing_docs)] 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); } } } ``` You can also generate public struct just by adding `pub` keyword. License: MIT