uapi-version

Crates.iouapi-version
lib.rsuapi-version
version0.4.0
sourcesrc
created_at2024-05-15 15:37:39.605038
updated_at2024-05-22 14:29:46.530082
descriptionCompare versions according to the UAPI Version Format Specification
homepagehttps://github.com/nikstur/uapi-version
repositoryhttps://github.com/nikstur/uapi-version
max_upload_size
id1241185
size24,032
(nikstur)

documentation

README

uapi-version

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!

Usage

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)
}
Commit count: 21

cargo fmt