bon_macros/util/
generic_param.rs
1pub(crate) trait GenericParamExt {
2 fn to_generic_argument(&self) -> syn::GenericArgument;
3}
4
5impl GenericParamExt for syn::GenericParam {
6 fn to_generic_argument(&self) -> syn::GenericArgument {
7 match self {
8 Self::Lifetime(param) => syn::GenericArgument::Lifetime(param.lifetime.clone()),
9 Self::Type(param) => {
10 let ident = ¶m.ident;
11 syn::GenericArgument::Type(syn::parse_quote!(#ident))
12 }
13 Self::Const(param) => {
14 let ident = ¶m.ident;
15 syn::GenericArgument::Const(syn::parse_quote!(#ident))
16 }
17 }
18 }
19}