#traits #typemap #fixed #macro #name #dynamic #fixed-typemap

fixed_typemap_macros

fixed_typemap crate 的内部实现

1 个不稳定版本

0.1.0 2021年12月26日

#22#typemap


2 crate 使用

Unlicense 许可

23KB
462

fixed_typemap

GitHub Actions docs.rs GitHub Sponsors

实现了使用过程宏支持许多额外功能的类型映射。docs.rs 有比这个说明更多的内容,包括一个迷你教程和实际示例。您可以使用它来:

  • 实现固定类型映射,不进行内存分配,并使用默认值初始化所有成员。
  • 使用它来实现类似“在特质中添加字段”的建议,其中您可以使用类型泛型地“命名”字段。
  • 生成迭代辅助工具,可以迭代任何数量的特质的类型映射作为特质对象(例如,这可以替换 HashMap<TypeId, Box<dyn MyTrait>>,同时还将其他功能一起带入,并让您一次性进行多个特质的操作)。
  • 添加一个可选的动态部分,它使用 HashMap 来存储任何类型。

no_std 支持正在进行中,基本上已经完成,但我不够了解以确保可靠地完成它。这样做不应该很难,我非常欢迎对此做出贡献并提供 CI 配置。

依赖项

~2MB
~43K SLoC