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