Expand description
Library to generate a changeset.
§Usage
Add dependency to Cargo.toml:
[dependencies]
changeset = "0.1"And in your main.rs or lib.rs:
ⓘ
#[macro_use]
extern crate changeset;§Exemple
ⓘ
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.