1 个不稳定版本
0.1.0 | 2024年2月26日 |
---|
#29 在 #解析器
23KB
452 行
实用CLI解析器(UCP)
该crate提供了一组用于命令行界面(CLI)的解析器。
示例
没有比示例更能说明问题的了。
use ucp::pred::{Comparison, FieldComparison, Operator};
fn main() {
assert_eq!(
">=1024".parse::<Comparison<usize>>(),
Ok(Comparison::new(Operator::Gte, 1024))
);
assert_eq!(
"!1024".parse::<Comparison<usize>>(),
Ok(Comparison::new(Operator::Ne, 1024))
);
assert_eq!(
"size=1024".parse::<FieldComparison<String, usize>>(),
Ok(FieldComparison::new(
String::from("size"),
Operator::Eq,
1024
)),
);
assert_eq!(
"size≠1024".parse::<FieldComparison<String, usize>>(),
Ok(FieldComparison::new(
String::from("size"),
Operator::Ne,
1024
)),
);
}
注意
我制作了这个crate,目的是简化制作CLI工具的过程(我经常为自己做),它打算与clap一起使用,并且没有为解析失败定义专门的Error
类型,而是使用了String
。
这可能在crate的下一个版本中改变,并会破坏与先前版本的兼容性。