summaryrefslogtreecommitdiff
path: root/engine-macros/src/reflection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine-macros/src/reflection.rs')
-rw-r--r--engine-macros/src/reflection.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/engine-macros/src/reflection.rs b/engine-macros/src/reflection.rs
new file mode 100644
index 0000000..825094b
--- /dev/null
+++ b/engine-macros/src/reflection.rs
@@ -0,0 +1,15 @@
+mod enum_impl;
+mod field;
+mod struct_impl;
+mod visibility;
+
+pub fn derive(input: proc_macro2::TokenStream) -> proc_macro2::TokenStream
+{
+ let input = syn::parse2::<syn::Item>(input).unwrap();
+
+ match input {
+ syn::Item::Struct(input) => struct_impl::generate(input),
+ syn::Item::Enum(input) => enum_impl::generate(input),
+ _ => panic!("Invalid input"),
+ }
+}