4 releases

0.1.3 May 2, 2022
0.1.2 May 1, 2022
0.1.1 Apr 29, 2022
0.1.0 Apr 29, 2022

#149 in #semver

28 downloads per month
Used in fast-version

MIT license

22KB
394 lines

fast-version

license shield crates.io shield

Utility crate for fast SemVer like Versions and Version Requirenments. If you look for full SemVer experience and/or easy usage, please consider the excellent semver crate.

This implementation however doesn't require allocations, thus can be used in compile time evaluation. (support for embedded will follow)

Example

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));

License: MIT


lib.rs:

Derive macro defintion for the fast-version crate

Refer to the fast-version for usage and documentation.

Dependencies

~0.4–0.9MB
~20K SLoC