1 use syn;
2 
3 use Result;
4 
5 /// Creates an instance by parsing a specific `syn::GenericParam`.
6 /// This can be a type param, a lifetime, or a const param.
7 pub trait FromGenericParam: Sized {
from_generic_param(param: &syn::GenericParam) -> Result<Self>8     fn from_generic_param(param: &syn::GenericParam) -> Result<Self>;
9 }
10 
11 impl FromGenericParam for () {
from_generic_param(_param: &syn::GenericParam) -> Result<Self>12     fn from_generic_param(_param: &syn::GenericParam) -> Result<Self> {
13         Ok(())
14     }
15 }
16 
17 impl FromGenericParam for syn::GenericParam {
from_generic_param(param: &syn::GenericParam) -> Result<Self>18     fn from_generic_param(param: &syn::GenericParam) -> Result<Self> {
19         Ok(param.clone())
20     }
21 }
22