1 个不稳定版本

0.1.0 2022年12月27日

#27#intern

Download history 11/week @ 2024-03-28 10/week @ 2024-04-04

66 每月下载量

MIT 许可证

26KB
485

symboltable


lib.rs:

此crate提供了一个 [SymbolTable] 类型,可以存储轻量级的 [Symbols],这可以实现非常快的比较和全序操作。根据底层数据结构,[SymbolTable] 还可能提供从 [Symbol] 到 [String] 的快速转换。最后,[Symbol] 是参数化的,允许您将来自不可比较来源的字符串进行内省,而不会出现混淆。例如,如果您将 Address: Into 和 Username: Into 进行内省,您可以得到一个 Symbol

和 Symbol。这两个 [Symbol] 类型将共享相同的存储和压缩等好处,同时确保您不会混淆不同的 Symbol,就像字符串那样容易混淆:```text fn foo(address: String, username: String); foo(my_username, my_address); // 这在语法上是正确的,但在逻辑上是错误的,因为参数被混淆了。 fn foo2(address: Symbol, username: Symbol); // 当您意外地交换参数位置时,这种表达方式会产生类型错误。

依赖关系

~4–16MB
~162K SLoC