#pkg #lib #oi

fmri

IPS 包标识符实现 - FMRI

8 个版本 (4 个稳定版)

1.0.3 2024年6月13日
1.0.2 2024年6月12日
0.2.1 2023年9月21日
0.1.1 2023年9月21日

#4 in #pkg

每月下载 35 次
用于 3 crates

MIT 许可证

32KB
750

fmri

IPS 包标识符实现 - FMRI。提供 FMRI、发布者、版本结构体和版本比较。

请查看 GitHub 上的变更日志 GitHub
文档在这里 here

示例

此示例展示了该库的一些功能。

use std::cmp::Ordering;
use fmri::{
    FMRI,
    publisher::Publisher,
    version::Version,
};

fn main() {
    let raw_fmri = &"pkg://publisher/system/[email protected],5.11-0.175.1.0.0.2.1".to_owned();

    // create fmri
    let mut fmri = FMRI::parse_raw(raw_fmri).unwrap();

    // create new publisher
    let publisher = Publisher::new("test".to_owned()).unwrap();

    // change publisher of FMRI
    fmri.change_publisher(publisher);

    // remove version
    fmri.remove_version();

    assert_eq!(format!("{}", fmri), "pkg://test/system/library");

    // get package name from fmri
    assert_eq!(fmri.get_package_name_as_string(), "system/library");

    // prepare two FMRIs
    let fmri_a = FMRI::parse_raw(&"test@1".to_owned()).unwrap();
    let fmri_b = FMRI::parse_raw(&"test@2".to_owned()).unwrap();

    // compare them (fmri_a is older than fmri_b)
    assert_eq!(fmri_a.cmp(&fmri_b), Ordering::Less);

    // print version of fmri_b
    assert_eq!(fmri_b.get_version(), Some(Version::new("2".to_owned()).unwrap()));
}

依赖

~0.4–1MB
~22K SLoC