9个版本

0.2.2 2022年8月25日
0.2.1 2022年4月26日
0.1.7 2020年10月16日
0.1.6 2020年8月17日

#710 in 编码

Download history 334/week @ 2024-03-24 550/week @ 2024-03-31 232/week @ 2024-04-07 215/week @ 2024-04-14 609/week @ 2024-04-21 320/week @ 2024-04-28 718/week @ 2024-05-05 701/week @ 2024-05-12 324/week @ 2024-05-19 349/week @ 2024-05-26 555/week @ 2024-06-02 448/week @ 2024-06-09 213/week @ 2024-06-16 436/week @ 2024-06-23 208/week @ 2024-06-30 601/week @ 2024-07-07

1,466 每月下载量

MPL-2.0 许可证

175KB
5K SLoC

使用Rust编写的JEXL评估器 此crate依赖于一个JEXL解析crate,该crate处理所有解析并是同一工作空间的一部分。JEXL是Mozilla使用的一种表达式语言,更多信息请见:https://github.com/mozilla/mozjexl

如何使用

此crate的访问点是Evaluator Struct的eval函数 您可以直接使用eval函数来评估独立语句

例如

use jexl_eval::Evaluator;
use serde_json::json as value;
let evaluator = Evaluator::new();
assert_eq!(evaluator.eval("'Hello ' + 'World'").unwrap(), value!("Hello World"));

您还可以使用eval_in_context函数在上下文中运行语句 上下文可以是任何实现了serde::Serializable trait的类型,如果语句与上下文不匹配,函数将返回错误

例如

use jexl_eval::Evaluator;
use serde_json::json as value;
let context = value!({"a": {"b": 2.0}});
let evaluator = Evaluator::new();
assert_eq!(evaluator.eval_in_context("a.b", context).unwrap(), value!(2.0));

依赖

~3–4.5MB
~88K SLoC