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
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