1 stable release
new 2.1.0 | Jan 3, 2025 |
---|---|
1.2.1 |
|
1.2.0 |
|
1.1.0 |
|
#11 in #semantic-version
32 downloads per month
10KB
89 lines
simple-version
A small Rust library that provides a Version<T>
type for handling semantic versioning,
including an optional build number. It also offers a version_from_pkg!
macro to embed
the crate's compile-time CARGO_PKG_VERSION
directly into your code.
Examples
1. create a new Version
object
(without a build number)
use simple_version::Version;
let v = Version::<u32>::new(1, 2, 3);
println!("{}", v); // 1.2.3
2. create a new Version
object
(with a build number)
use simple_version::Version;
let v = Version::<u32>::new(1, 2, 3).build(4);
println!("{}", v); // 1.2.3+4
3. create a new Version
object
(using the Cargo package version)
# Cargo.toml
[package]
name = "..."
version = "1.2.3"
...
use simple_version::{Version, version_from_pkg};
let v: Version<u32> = version_from_pkg!(u32);
println!("{}", v); // 1.2.3
4. Compare between two versions
use simple_version::Version;
let v1 = Version::<u32>::new(1, 999, 999);
let v2 = Version::<u32>::new(2, 0, 0);
assert!(v1 < v2);
5. Compare between two versions
(with exceptions)
use simple_version::Version;
let v1 = Version::<u32>::new(1, 0, 0).build(1); // v1 has a build number.
let v2 = Version::<u32>::new(1, 0, 0); // v2 does not.
assert!(v1 > v2); // In this case, v1 is greater.