#expression-evaluator #evaluate #eval #context #value #foo

v_eval

具有上下文的表达式评估器

12 个版本 (6 个破坏性更新)

0.6.0 2020年5月5日
0.5.3 2020年4月28日
0.4.1 2020年4月26日
0.3.0 2020年4月14日
0.0.2 2019年3月18日

#1049过程宏

Download history 694/week @ 2024-03-13 717/week @ 2024-03-20 485/week @ 2024-03-27 506/week @ 2024-04-03 467/week @ 2024-04-10 346/week @ 2024-04-17 334/week @ 2024-04-24 392/week @ 2024-05-01 308/week @ 2024-05-08 269/week @ 2024-05-15 315/week @ 2024-05-22 303/week @ 2024-05-29 203/week @ 2024-06-05 228/week @ 2024-06-12 235/week @ 2024-06-19 192/week @ 2024-06-26

904 每月下载量
8 个crate中使用(通过 yarte_hir

MIT/Apache

75KB
1.5K SLoC

v_eval 文档 最新版本

具有上下文的表达式评估器

use v_eval::{Value, Eval};

fn main() -> Result<(), ()> {
    let e = Eval::default()
        .insert("foo", "true")?
        .insert("bar", "false")?;

    assert_eq!(e.eval("foo != bar").unwrap(), Value::Bool(true));
    assert_eq!(
        e.eval("true && foo != bar && true").unwrap(),
        Value::Bool(true)
    );
    assert_eq!(e.eval("1 == 1 != bar").unwrap(), Value::Bool(true));
    assert_eq!(e.eval("1 == 1 + 1 == bar").unwrap(), Value::Bool(true));
    
    Ok(())
}

贡献

请为 v_eval 贡献!越多越好!欢迎提出问题或建议,并直接与所有者联系。

行为准则

本行为准则改编自 贡献者公约,版本 1.4,可在 http://contributor-covenant.org/version/1/4 查找。

许可证

本项目根据 Apache 许可证(版本 2.0)和 MIT 许可证进行分发,具体见 LICENSE-APACHELICENSE-MIT

依赖关系

~3.5–4.5MB
~88K SLoC