cargo-version 0.1.2

Create and tag new versions of a cargo package
Documentation
extern crate semver;

use bump_level::BumpLevel;
use semver::Version;

pub fn derive_next_version(current_version: Version, level: BumpLevel) -> Version {
    let mut new_version = current_version.clone();

    match level {
        BumpLevel::Major => { new_version.increment_major() }
        BumpLevel::Minor => { new_version.increment_minor() }
        BumpLevel::Patch => { new_version.increment_patch() }
        BumpLevel::Specific(version) => { new_version = version }
    }

    new_version
}

#[cfg(test)]
mod tests {
    use super::*;
    use std::str::FromStr;

    #[test]
    fn it_derives_the_next_version() {
        assert_eq!(derive_next_version(Version::from_str("1.0.0").unwrap(), BumpLevel::Major), Version::from_str("2.0.0").unwrap());
        assert_eq!(derive_next_version(Version::from_str("1.0.0").unwrap(), BumpLevel::Minor), Version::from_str("1.1.0").unwrap());
        assert_eq!(derive_next_version(Version::from_str("1.0.0").unwrap(), BumpLevel::Patch), Version::from_str("1.0.1").unwrap());
    }
}