7 个版本
0.1.6 | 2022年6月13日 |
---|---|
0.1.5 | 2022年6月12日 |
#1637 in 数据结构
在 kube-query-tools 中使用
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