#查询语言 #验证 #资源 #xyz #rql #rql-validator #validator-interface

bin+lib xyz_validator

一组验证器。目前,仅实现了资源查询语言(RQL)验证器。

8 个不稳定版本 (3 个破坏性更改)

0.4.1 2022年11月25日
0.4.0 2022年11月25日
0.3.0 2022年11月25日
0.2.2 2022年11月25日
0.1.1 2022年11月23日

#2693 in 解析实现

MIT/Apache

20KB
375

示例

基本用法

use xyz_validator::{RqlValidator, ValidatorInterface};

fn main() {
  let valid_rql_statement = "or(and(eq(name,John),eq(surname,Doe)),eq(surname,Smith))".to_owned();
  let rql_validator: Box<dyn ValidatorInterface> = Box::new(RqlValidator::new(None));
  assert!(rql_validator.is_valid(valid_rql_statement));

  //to view errors we should define a callback function for `String` argument
  fn your_handle_error_function(your_var: String) {
      eprintln!("{}", your_var);
  }

  let rql_validator: Box<dyn ValidatorInterface> =
      Box::new(RqlValidator::new(Some(your_handle_error_function)));

  let invalid_rql_statement = "and(eq(name,John))".to_owned();
  assert!(!rql_validator.is_valid(invalid_rql_statement));
  //Operator `and` should have at least 2 nested queries
}

无运行时依赖