cgp_component_macro_lib/derive_component/
component_name.rs1use syn::punctuated::Punctuated;
2use syn::token::Comma;
3use syn::{parse_quote, Ident, ItemStruct};
4
5pub fn derive_component_name_struct(
6 component_name: &Ident,
7 component_params: &Punctuated<Ident, Comma>,
8) -> ItemStruct {
9 if component_params.is_empty() {
10 parse_quote!(pub struct #component_name ;)
11 } else {
12 parse_quote!(pub struct #component_name < #component_params > ( pub core::marker::PhantomData<( #component_params )> );)
13 }
14}