5 个版本 (3 个重大更改)

0.5.0 2020年3月18日
0.4.0 2020年3月13日
0.3.1 2020年2月17日
0.3.0 2020年2月17日
0.2.0 2020年2月17日

#comparing 中排名第 10

Apache-2.0 OR MIT

11KB
205 行代码(不含注释)

vercomp

一个用于比较版本的 Rust 库。它支持一些版本控制风格(不仅仅是 X.Y.Z)。

示例

example.rs

use vercomp::{Stage, Version};

fn main() {
    // Version contains number and stage.
    let version_1 = Version::from("1.2.3-Alpha");
    let version_2 = Version::from("1.2.3-Alpha");
    if version_1 == version_2 {
        println!("version_1 equals version_2.");
    }
    // if version_1 < version_2 {
    //     Compile error.
    //     Version can not use ">=", ">", "<=" and "<".
    // }

    // Version.number is the number of the version. It supports "==", "!=", ">=", ">", "<=" and "<".
    let version_3 = Version::from("1.2.3");
    let version_4 = Version::from("1-2-3");
    if version_3.number == version_4.number {
        println!("version_3.number equals version_4.number.");
    }
    let version_5 = Version::from("1/2/3");
    let version_6 = Version::from("1~2");
    if version_5.number > version_6.number {
        println!("version_5.number is greater than version_6.number.");
    }
    let version_7 = Version::from("1:2");
    let version_8 = Version::from("1;2;3");
    if version_7.number < version_8.number {
        println!("version_7.number is less than version_8.number.");
    }

    // Version.stage is the stage of the version. It only supports "==" and "!=".
    let version_9 = Version::from("1.2.3-Alpha");
    if version_9.stage == Stage::Alpha {
        println!("version_9 is an alpha version.");
    }
    let _version_10 = Version::from("1.2.3-Beta");
    let _version_11 = Version::from("1.2.3");
    // if _version_10.stage > _version_11.stage {
    //     Compile error.
    //     Version.stage can not use ">=", ">", "<=" and "<".
    // }
    // "CASE INSENSITIVE"
    // Stage::Alpha   <= Contain alpha
    // Stage::Beta    <= Contain beta
    // Stage::Dev     <= Contain dev
    // Stage::Nightly <= Contain nightly
    // Stage::Rc      <= Contain rc
    // Stage::Stable  <= others
}

许可证

本项目发布在 GPL3 许可下。更多信息请查看LICENSE 文件。

依赖项

~2–3MB
~53K SLoC