#internals #traits #typemap #set #type #iterate #fixed-typemap

fixed_typemap_internals

fixed_typemap crate 的内部细节

1 个不稳定版本

0.1.0 2021年12月26日

#20 in #typemap


fixed_typemap 中使用

无许可

6KB
59

fixed_typemap

GitHub Actions docs.rs GitHub Sponsors

实现了使用过程宏支持许多额外功能的typemaps。docs.rs 中比这个readme包含的内容要多得多,包括一个迷你教程和实际示例。你可以用这个来实现

  • 实现不分配的固定typemaps,并将所有成员内联初始化为默认值。
  • 使用这个来实现类似于fields-in-traits提案的功能,其中你可以使用类型“命名”字段。
  • 生成迭代辅助工具,可以迭代任何数量的特质(例如,这可以替换 HashMap<TypeId, Box<dyn MyTrait>>,并带来其他所有功能,同时也可以让你一次性处理尽可能多的特质)。
  • 添加一个可选的动态部分,它使用 HashMap 来存储任何类型。

no_std 支持正在开发中,基本完成,但我不知道如何可靠地完成它。这样做应该不难,我非常欢迎对此做出贡献,并希望提供 CI 配置。


lib.rs:

fixed_typemap 的内部细节,这是一个用于生成具有已知类型扩展功能的 typemaps 的 crate。

这是由过程宏使用的一系列内部细节,不应直接依赖。相反,你应该依赖并使用 fixed_typemap,这可能是你想要的内容。

依赖项

~2MB
~42K SLoC