9 个版本
0.2.7 | 2024 年 3 月 9 日 |
---|---|
0.2.6 | 2024 年 3 月 9 日 |
0.2.5 | 2023 年 10 月 3 日 |
0.2.1 | 2023 年 9 月 16 日 |
0.1.0 | 2023 年 6 月 3 日 |
#312 in Unix APIs
2,383 每月下载量
用于 upstream-ontologist
48KB
1.5K SLoC
Debian watch 文件的格式保持解析器和编辑器
此crate支持读取、编辑和写入Debian watch文件,同时保留原始内容字节的完整性。
示例
let wf = debian_watch::WatchFile::new(None);
assert_eq!(wf.version(), debian_watch::DEFAULT_VERSION);
assert_eq!("", wf.to_string());
let wf = debian_watch::WatchFile::new(Some(4));
assert_eq!(wf.version(), 4);
assert_eq!("version=4\n", wf.to_string());
let wf: debian_watch::WatchFile = r#"version=4
opts=foo=blah https://foo.com/bar .*/v?(\d\S+)\.tar\.gz
"#.parse().unwrap();
assert_eq!(wf.version(), 4);
assert_eq!(wf.entries().collect::<Vec<_>>().len(), 1);
let entry = wf.entries().next().unwrap();
assert_eq!(entry.opts(), maplit::hashmap! {
"foo".to_string() => "blah".to_string(),
});
assert_eq!(&entry.url(), "https://foo.com/bar");
assert_eq!(entry.matching_pattern().as_deref(), Some(".*/v?(\\d\\S+)\\.tar\\.gz"));
它还支持部分解析(带有一些错误节点),这可能对例如IDE非常有用。
依赖关系
~4–6MB
~133K SLoC