fast_version/
lib.rs

1//! [![license
2//! shield](https://img.shields.io/badge/license-MIT-green)](https://github.com/umgefahren/fast-version/blob/main/LICENSE)
3//! [![crates.io
4//! shield](https://img.shields.io/crates/v/fast-version)](https://crates.io/crates/fast-version)
5//!
6//! Utility crate for fast SemVer **like** Versions and Version Requirenments. If you look for full
7//! SemVer experience and/or easy usage, please consider the excellent
8//! [semver](https://docs.rs/semver/latest/semver/index.html) crate.
9//!
10//! This implementation however doesn't require allocations, thus can be used in compile time
11//! evaluation. (support for embedded will follow)
12//!
13//! ## Example
14//! ```
15//! use fast_version::{Version, VersionReq, VersionReqVariant, const_version};
16//!
17//! const VERSION: Version = const_version!("1.2.3");
18//!
19//! assert_eq!(VERSION.major, 1);
20//! assert_eq!(VERSION.minor, 2);
21//! assert_eq!(VERSION.patch, 3);
22//!
23//! const VERSION_REQ_MATCH: VersionReq = {
24//!     let version_req_variant = VersionReqVariant::Strict(VERSION);
25//!     VersionReq::new(&version_req_variant)
26//! };
27//!
28//! assert!(VERSION_REQ_MATCH.matches(&VERSION));
29//!
30//! const VERSION_REQ_UNMATCH: VersionReq = {
31//!     let version_req_variant = VersionReqVariant::MajorLessEqual { major: 0 };
32//!     VersionReq::new(&version_req_variant)
33//! };
34//!
35//! assert!(!VERSION_REQ_UNMATCH.matches(&VERSION));
36//! ```
37pub use fast_version_core::version::Version;
38pub use fast_version_core::version_req::*;
39pub use fast_version_derive::const_version;