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

```rust use fastversion::{Version, VersionReq, VersionReqVariant, constversion};

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

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

const VERSIONREQMATCH: VersionReq = { let versionreqvariant = VersionReqVariant::Strict(VERSION); VersionReq::new(&versionreqvariant) };

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

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

assert!(!VERSIONREQUNMATCH.matches(&VERSION)); ```

License: MIT