#version #matching #semver #compile-time #look #full #requirenments

no-std fast-version

快速版本需求与匹配

3个不稳定版本

0.2.1 2022年5月1日
0.1.1 2022年4月29日
0.1.0 2022年4月29日

#22 in #look

MIT 协议

23KB
369 行代码(不包括注释)

fast-version

license shield crates.io shield

fast-version 是一个用于快速 SemVer(如版本和版本需求)的实用程序crate。如果您在寻找完整的 SemVer 体验和/或易于使用,请考虑优秀的 semver crate。

然而,此实现不需要分配,因此可用于编译时评估。(嵌入式支持即将推出)

示例

use fast_version::{Version, VersionReq, VersionReqVariant, const_version};

const VERSION: Version = const_version!("1.2.3");

assert_eq!(VERSION.major, 1);
assert_eq!(VERSION.minor, 2);
assert_eq!(VERSION.patch, 3);

const VERSION_REQ_MATCH: VersionReq = {
    let version_req_variant = VersionReqVariant::Strict(VERSION);
    VersionReq::new(&version_req_variant)
};

assert!(VERSION_REQ_MATCH.matches(&VERSION));

const VERSION_REQ_UNMATCH: VersionReq = {
    let version_req_variant = VersionReqVariant::MajorLessEqual { major: 0 };
    VersionReq::new(&version_req_variant)
};

assert!(!VERSION_REQ_UNMATCH.matches(&VERSION));

许可证:MIT

依赖项

~0.5–1MB
~23K SLoC