Crates.io | uapi-version |
lib.rs | uapi-version |
version | 0.4.0 |
source | src |
created_at | 2024-05-15 15:37:39.605038 |
updated_at | 2024-05-22 14:29:46.530082 |
description | Compare versions according to the UAPI Version Format Specification |
homepage | https://github.com/nikstur/uapi-version |
repository | https://github.com/nikstur/uapi-version |
max_upload_size | |
id | 1241185 |
size | 24,032 |
Compare versions according to the UAPI Version Format Specification.
This library is written purely in Rust and does not rely on any third party
dependencies. It is #![no_std]
and can thus, for example, also be used for
UEFI development.
Uses the same test suite that systemd uses to test their
strverscmp_improved()
function.
Any deviation from the UAPI specification is a bug. Please report it if you find one!
Add uapi-version
to your Cargo.toml
:
cargo add uapi-version
You can compare two versions:
use std::cmp::Ordering;
use uapi_version::Version;
fn main() {
let a = Version::from("225.1");
let b = Version::from("2");
assert_eq!(a.cmp(&b), Ordering::Greater)
}
You can sort a list of versions:
use uapi_version::Version;
fn main() {
let mut versions = [
"5.2",
"abc-5",
"1.0.0~rc1",
].map(Version::from);
versions.sort();
assert_eq!(versions, [ "abc-5", "1.0.0~rc1", "5.2" ].map(Version::from))
}
You can also compare version strings directly:
use std::cmp::Ordering;
use uapi_version::strverscmp;
fn main() {
assert_eq!(strverscmp("124", "123"), Ordering::Greater)
}