diff options
Diffstat (limited to 'engine-macros/src/reflection/enum_impl.rs')
| -rw-r--r-- | engine-macros/src/reflection/enum_impl.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/engine-macros/src/reflection/enum_impl.rs b/engine-macros/src/reflection/enum_impl.rs index 14142bf..611da6d 100644 --- a/engine-macros/src/reflection/enum_impl.rs +++ b/engine-macros/src/reflection/enum_impl.rs @@ -1,5 +1,6 @@ use quote::{format_ident, quote, ToTokens}; +use crate::reflection::default_value::gen_get_default_value_fn; use crate::reflection::field::{generate as generate_field, ReflectionFieldGenOptions}; use crate::util::{find_engine_crate_path, syn_path, SynPathExt}; @@ -238,6 +239,8 @@ pub fn generate(input: syn::ItemEnum) -> proc_macro2::TokenStream } }; + let get_default_value_fn = gen_get_default_value_fn(&input_ident, &type_generics); + quote! { #[doc(hidden)] mod #mod_name { @@ -254,7 +257,10 @@ pub fn generate(input: syn::ItemEnum) -> proc_macro2::TokenStream variants: &[#(#variants),*], is_unit_only: #is_unit_only, discriminant_layout: #discriminant_layout, - fields_layout: #fields_layout + fields_layout: #fields_layout, + get_default_value: || { + #get_default_value_fn + } } ) }; |
