10个版本 ()

1.0.0-alpha.62024年8月6日
1.0.0-alpha.52024年7月26日
1.0.0-alpha.2 2024年6月21日
0.11.0 2024年6月4日
0.7.2-rc2023年6月6日

#29 in #zenoh

Download history 1160/week @ 2024-05-04 1879/week @ 2024-05-11 1215/week @ 2024-05-18 1410/week @ 2024-05-25 1805/week @ 2024-06-01 1517/week @ 2024-06-08 2005/week @ 2024-06-15 1661/week @ 2024-06-22 963/week @ 2024-06-29 1482/week @ 2024-07-06 1285/week @ 2024-07-13 1247/week @ 2024-07-20 1632/week @ 2024-07-27 2132/week @ 2024-08-03 1883/week @ 2024-08-10 1356/week @ 2024-08-17

7,550 每月下载量
64个crate中使用 (直接使用10个)

EPL-2.0 OR Apache-2.0

330KB
7K SLoC

⚠️ 警告 ⚠️

此crate仅用于Zenoh的内部使用。


lib.rs:

键表达式是Zenoh的地址空间。

在Zenoh中,操作是在键上执行的。为了允许单个操作对多个键进行寻址,我们使用键表达式(KE)。KEs是一种小型的语言,通过类似于glob的语言表达键的集合。

这些语义的实现可能有点困难,因此此模块提供了以下功能

存储键表达式

此模块提供了两种存储字符串的方法,这些字符串已通过验证,符合KE语法,第三种由zenoh提供

所有这些类型都 Derefkeyexpr,该类型特别提供了检查给定 keyexpr::intersects 与另一个,或者甚至 keyexpr::includes 另一个的方法。

将值与键表达式关联

当存储与键表达式关联的值时,如果您希望以高性能尊重键表达式的语义,可能需要比 HashMap 更专业的解决方案。

请看 KeTrees。这些数据结构专门设计用于以支持 KEs 的集合语义的方式存储 KE-值对。

构建和解析键表达式

在 REST API 中,常见的问题是给 URL 的部分赋予意义,并以方便的方式尊重该 API。设计 KE 空间时,同样会出现这个问题,而 KeFormat 就是为了帮助您解决这一问题而设计的,它既可以构建 KEs,也可以解析符合您定义格式的 KEs。

kedefine 还允许您在编译时定义格式,这使得使用这些格式更加高效,更重要的是,更加安全、方便。因为 keformatkewrite 宏将能够告诉您是否尝试设置格式中不存在的字段。

依赖项

~2.3–3.5MB
~61K SLoC