aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/groupped.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_macros/src/groupped.rs')
-rw-r--r--mingling_macros/src/groupped.rs24
1 files changed, 3 insertions, 21 deletions
diff --git a/mingling_macros/src/groupped.rs b/mingling_macros/src/groupped.rs
index 03f0b9c..1459522 100644
--- a/mingling_macros/src/groupped.rs
+++ b/mingling_macros/src/groupped.rs
@@ -1,29 +1,13 @@
use proc_macro::TokenStream;
use quote::quote;
-use syn::{Attribute, DeriveInput, Ident, parse_macro_input};
-
-/// Parses the `#[group(...)]` attribute to extract the group type
-fn parse_group_attribute(attrs: &[Attribute]) -> Option<Ident> {
- for attr in attrs {
- if attr.path().is_ident("group")
- && let Ok(meta) = attr.parse_args::<syn::Meta>()
- && let syn::Meta::Path(path) = meta
- && let Some(segment) = path.segments.last()
- {
- return Some(segment.ident.clone());
- }
- }
- None
-}
+use syn::{DeriveInput, Ident, parse_macro_input};
pub fn derive_groupped(input: TokenStream) -> TokenStream {
// Parse the input struct/enum
let input = parse_macro_input!(input as DeriveInput);
let struct_name = input.ident;
- // Parse attributes to find #[group(...)]
- let group_ident: proc_macro2::TokenStream = parse_group_attribute(&input.attrs)
- .map_or_else(crate::default_program_path, |ident| quote! { #ident });
+ let group_ident: proc_macro2::TokenStream = crate::default_program_path();
let any_output_convert_impls =
proc_macro2::TokenStream::from(build_any_output_convert_impls(&struct_name, &group_ident));
@@ -50,9 +34,7 @@ pub fn derive_groupped_serialize(input: TokenStream) -> TokenStream {
let input_parsed = parse_macro_input!(input as DeriveInput);
let struct_name = input_parsed.ident.clone();
- // Parse attributes to find #[group(...)]
- let group_ident: proc_macro2::TokenStream = parse_group_attribute(&input_parsed.attrs)
- .map_or_else(crate::default_program_path, |ident| quote! { #ident });
+ let group_ident: proc_macro2::TokenStream = crate::default_program_path();
let any_output_convert_impls =
proc_macro2::TokenStream::from(build_any_output_convert_impls(&struct_name, &group_ident));