1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*!
Crate for primitive run-time type reflection
Information is generated entirely in compile-time using derive macro [`TypeInfo`]
Moreover, this crate mostly itends to operate with trait objects and [`std::any::Any`].
That's why there are two separate "main" traits: [`TypeInfo`] and [`TypeInfoDynamic`].
The former indents to provide info about type when the type can be named and is known and the latter
is for case if type is erased
# Examples
```
use reflectix::TypeInfoDynamic;
#[derive(reflectix::TypeInfo, Default)]
struct Foo{
bar: i32
}
# fn main() {
# let foo = Foo::default();
let foo_erased = &foo;
assert_eq!(foo.get_dynamic().ident, "Foo");
# }
```
*/
pub use *;
/// Derive-able implementation of [`TypeInfo`] and [`TypeInfoDynamic`]
///
/// Accepts both enum's and struct's
///
/// *Note*: That if any field type is compound (non-primitive), then you
/// must derive [`TypeInfo`] for those types too
pub use TypeInfo;