#semver #version #semantic #versioning

序言

创建、解析、编辑和比较语义版本号

3个版本 (重大更改)

使用旧的Rust 2015

0.3.0 2016年2月20日
0.2.0 2016年2月19日
0.1.0 2016年2月18日

#versioning中的第79位


ver中使用

MIT许可协议

40KB
728

Build Status Crates.io

Recital

创建、解析、编辑和比较语义版本号。

用法

#[macro_use]
extern crate recital;

fn main() {
    let installed: Version = "1.0.0-beta".parse();
    let published: Version = "1.3.4".parse();

    if published > installed {
        println("A new version is available: {}", published);
    }
}

请参阅该库的文档

安装

将其添加到您的依赖列表中。

"recital" = "0.3.0"

许可协议

在MIT许可协议下发布。


lib.rs:

创建、解析、编辑和比较语义版本号。

这个库为您提供了使用与语义版本规范2.0.0版本兼容的版本号所需的所有功能。如果您不知道语义版本号规则和需求,则规范是必读的。规范相当小,所以不会花费太多时间!

规范

您可以在semver.org找到规范。

用法

该库试图使使用语义版本号尽可能简单。因此,您可以使用这些数字做很多事情。本使用指南将涵盖高级内容,因此您可能需要阅读文档以获取有关包含的结构和特质的更多信息。

#[macro_use]
extern crate recital;

use recital::prelude::*;

创建

let version = version!(1, 2, 3,
                       vec![id!("abc"), id!(456)],
                       vec![id!("def"), id!(789)]);

解析

let version: Version = "1.2.3-abc.456+def.789".parse().unwrap();

修改

// `0.0.0`
let mut version = Version::new();

// `1.2.3`
version.major = 1;
version.minor = 2;
version.patch = 3;

// `1.2.3-abc.456+def.789`
version.pre.push(id!("abc"));
version.pre.push(id!(456));
version.build.push(id!("def"));
version.build.push(id!(789));

// `2.1.1`
version.increment_major();
version.increment_minor();
version.increment_patch();

比较

您可以将版本号与任何数字一样比较。

let a: Version = "1.2.3-alpha".parse().unwrap();
let b: Version = "1.2.3".parse().unwrap();

assert!(a < b);
assert!(!(a > b));
assert!(a != b);

依赖项

~660KB
~13K SLoC