10个版本 ()
1.0.0-alpha.6 | 2024年8月6日 |
---|---|
1.0.0-alpha.5 | 2024年7月26日 |
1.0.0-alpha.2 |
|
0.11.0 | 2024年6月4日 |
0.7.2-rc | 2023年6月6日 |
#29 in #zenoh
7,550 每月下载量
在64个crate中使用 (直接使用10个)
330KB
7K SLoC
⚠️ 警告 ⚠️
此crate仅用于Zenoh的内部使用。
lib.rs
:
键表达式是Zenoh的地址空间。
在Zenoh中,操作是在键上执行的。为了允许单个操作对多个键进行寻址,我们使用键表达式(KE)。KEs是一种小型的语言,通过类似于glob的语言表达键的集合。
这些语义的实现可能有点困难,因此此模块提供了以下功能
存储键表达式
此模块提供了两种存储字符串的方法,这些字符串已通过验证,符合KE语法,第三种由zenoh
提供
keyexpr
相当于一个str
OwnedKeyExpr
类似于一个Arc<str>
KeyExpr
类似于一个Cow<str>
,但也在 Zenoh 内部存储一些额外的上下文,以优化路由和网络使用。
所有这些类型都 Deref
到 keyexpr
,该类型特别提供了检查给定 keyexpr::intersects
与另一个,或者甚至 keyexpr::includes
另一个的方法。
将值与键表达式关联
当存储与键表达式关联的值时,如果您希望以高性能尊重键表达式的语义,可能需要比 HashMap
更专业的解决方案。
请看 KeTrees。这些数据结构专门设计用于以支持 KEs 的集合语义的方式存储 KE-值对。
构建和解析键表达式
在 REST API 中,常见的问题是给 URL 的部分赋予意义,并以方便的方式尊重该 API。设计 KE 空间时,同样会出现这个问题,而 KeFormat
就是为了帮助您解决这一问题而设计的,它既可以构建 KEs,也可以解析符合您定义格式的 KEs。
kedefine
还允许您在编译时定义格式,这使得使用这些格式更加高效,更重要的是,更加安全、方便。因为 keformat
和 kewrite
宏将能够告诉您是否尝试设置格式中不存在的字段。
依赖项
~2.3–3.5MB
~61K SLoC