changeset 0.1.1

A small library to generate changeset
Documentation
  • Coverage
  • 50%
    1 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 7.75 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.07 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • babariviere/changeset
    2 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • babariviere

changeset

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 {
    #[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