impl_reflect_value!() { /* proc-macro */ }
Expand description

A macro used to generate reflection trait implementations for the given type.

This is functionally the same as deriving Reflect using the #[reflect_value] container attribute.

The only reason for this macro’s existence is so that bevy_reflect can easily implement the reflection traits on primitives and other Rust types internally.

Since this macro also implements TypePath, the type path must be explicit. See impl_type_path! for the exact syntax.

Examples

Types can be passed with or without registering type data:

impl_reflect_value!(my_crate::Foo);
impl_reflect_value!(my_crate::Bar(Debug, Default, Serialize, Deserialize));

Generic types can also specify their parameters and bounds:

impl_reflect_value!(my_crate::Foo<T1, T2: Baz> where T1: Bar (Default, Serialize, Deserialize));

Custom type paths can be specified:

impl_reflect_value!((in not_my_crate as NotFoo) Foo(Debug, Default));