3 个不稳定版本
| 0.2.0 | 2022年8月25日 |
|---|---|
| 0.1.1 | 2022年8月12日 |
| 0.1.0 | 2022年8月12日 |
#64 in #reflection
76KB
1.5K SLoC
Bevy Reflection on Steroids
是 bevy_reflect 包的一系列补充扩展,该包为 Bevy 游戏引擎的部分功能提供支持。
bevy_reflect 为 Rust 结构体提供了一个通用的反射框架,并提供了对 traits 的基本支持。
亮点
- 与
bevy_reflect无缝集成。 - 包含一个全局注册类型的设施,无需显式调用
TypeRegistry::register()。此功能由 "inventory" 包的功能控制,默认启用。请参阅enable_global_type_registration。 - 包含执行泛型动态转换的设施,填补了 Rust 语言的漏洞(类似于 C++ 的
dynamic_cast)。请参阅Casttrait。 - 包含类似
downcast-rs的功能,但使用Reflecttrait 代替Any。请参阅DowncastReflect。 - 对不透明 trait 对象进行序列化和反序列化(类似于
typetag)。
此包提供了一种更直观、更易于用户交互的方式,通过任意 trait 对象与反射类型进行交互。
通过为 dyn MyTrait 实现 DynamicTrait,使得该类型的所有动态特征对象引用都可以使用反射功能。唯一的要求是该特征具有 DowncastReflect 作为超特征,并且在代码中存在对宏 impl_dynamic_trait!(MyTrait, ReflectMyTrait) 的调用。
依赖项
~3–10MB
~101K SLoC