2 个版本

0.1.1 2020年9月22日
0.1.0 2020年9月8日

#106 in #query-language


3 个crate中使用 (通过 ogma-libs)

MIT/Apache

54KB
1K SLoC

自然对象查询语言

自然对象查询语言(或NOQL)的目标是有一个普通英语表示的对象查询

type QueryList<'a> = Vec<Query<'a>>;

enum Query<'a> {
  Index {
    index: usize,
    from_end: bool
  },
  Key(&'a str)
}

其中对象可以接受一系列查询段,并索引列表或从映射中获取键

索引

the ((first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|eleventh|twelfth|#st|#nd|#rd|#th) [to last]|last) item

其中 # 是一个正整数

the [key|`key`|`multi word key`]

键的处理程序可以选择“去人性化”键,方法任意

查询列表

(index|key) [of (index|key) [of (index|key) ...]]

查询段通过 of 连接


lib.rs:

将自然语言解析为 Vec<Query>。主要入口点是 from_slicefrom_str

依赖项

~215KB