diff options
Diffstat (limited to 'src/from_generic_param.rs')
-rw-r--r-- | src/from_generic_param.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/from_generic_param.rs b/src/from_generic_param.rs new file mode 100644 index 0000000..757ad76 --- /dev/null +++ b/src/from_generic_param.rs @@ -0,0 +1,19 @@ +use crate::Result; + +/// Creates an instance by parsing a specific `syn::GenericParam`. +/// This can be a type param, a lifetime, or a const param. +pub trait FromGenericParam: Sized { + fn from_generic_param(param: &syn::GenericParam) -> Result<Self>; +} + +impl FromGenericParam for () { + fn from_generic_param(_param: &syn::GenericParam) -> Result<Self> { + Ok(()) + } +} + +impl FromGenericParam for syn::GenericParam { + fn from_generic_param(param: &syn::GenericParam) -> Result<Self> { + Ok(param.clone()) + } +} |