2个版本
0.1.1 | 2023年7月20日 |
---|---|
0.1.0 | 2023年7月14日 |
#1324 在 编码
4,681 每月下载量
110KB
2.5K SLoC
RESO传输小组RCP 19 (RETS验证表达式)的实现。
查看文档以了解用法。
查看“compliance-tests”文件夹中的合规性测试。
lib.rs
:
RESO传输小组RCP 19 (RETS验证表达式)的实现。
示例
use rets_expression::{Expression, Engine, EvaluateContext};
use serde_json::json;
// Parse an expression
let expression = "MlsStatus .IN. ('Active', 'Pending') .AND. (ListPrice >= 1 .OR. LAST MlsStatus = 'Incomplete')"
.parse::<Expression>()
.unwrap();
// Create the property data to run the expression against
let value = json!({
"MlsStatus": "Active",
"ListPrice": 1000000
});
// Create the previous property data to run the expression against (for when the expression
// includes references to previous data, like `LAST FieldName`)
let previous_value = json!({
"MlsStatus": "Incomplete",
"ListPrice": 0
});
// Create a default engine and a context in which to evaluate the expression
let engine = Engine::default();
let context = EvaluateContext::new(&engine, &value).with_previous(&previous_value);
// Evaluate the expression!
let value = expression.apply(context).unwrap();
assert_eq!(value.into_owned(), json!(true));
依赖关系
~2.3–8.5MB
~61K SLoC