#query #query-string #serde #data #querying #serializable #indexing

data-query

支持使用字符串查询查询可序列化数据的查询库

7 个版本

0.1.6 2022年6月13日
0.1.5 2022年6月12日

#1637 in 数据结构


kube-query-tools 中使用

MIT 许可证

33KB
423

数据查询

数据查询是一个库,允许查询任何可序列化数据。

用法

它目前只支持少量查询结构。

  • 映射数据,例如
    • .一些-.一些-其他-
  • 数组和映射的泛型索引
    • .some-array[0] - 获取数组中键 0
    • .some-array[0-2,6] - 获取键 0、1、2 和 6
    • .some-map[key1, key2] - 将数组视为映射,并获取 key1 和 key2

以后还会添加更多,请参阅 TODO

代码用法

要查询数据,可以使用以下方法

使用预编译_lex

precompile_lex! 宏将从已给出的查询字符串构建词法。预先构建词法操作可以减少所需的处理量

let lex = precompile_lex!(.friends[1].name);
let data = User::default();
let query_res = query(data, lex);
println!("{:?}", query_res.unwrap());

使用编译

如果查询是动态创建的,最好在即时编译词法

let lex = compile(".friends[1,2].name").unwrap();
let data = User::default();
let query_res = query(data, lex);
println!("{:?}", query_res.unwrap());

待办事项

目前只有一个待办事项,因为它非常重要。

  • 重写词法模块以使其更动态并更好地处理标记;

依赖关系

~6–8.5MB
~159K SLoC