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