1 个不稳定版本

0.1.0 2024年2月26日

#29#解析器

MIT 协议

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的下一个版本中改变,并会破坏与先前版本的兼容性。

无运行时依赖