(input: syn::parse::ParseStream)
| 40 | |
| 41 | impl syn::parse::Parse for AnyFnItem { |
| 42 | fn parse(input: syn::parse::ParseStream) -> syn::Result<Self> { |
| 43 | use syn::parse::discouraged::Speculative; |
| 44 | let fork = input.fork(); |
| 45 | let item_fn = fork.parse(); |
| 46 | match item_fn { |
| 47 | Ok(res) => { |
| 48 | // We have an item Fn. |
| 49 | input.advance_to(&fork); |
| 50 | Ok(AnyFnItem::Fn(res)) |
| 51 | } |
| 52 | Err(_) => { |
| 53 | // It is not a valid ItemFn. |
| 54 | let item_method = input.parse()?; |
| 55 | Ok(AnyFnItem::TraitMethod(item_method)) |
| 56 | } |
| 57 | } |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | impl AnyFnItem { |
nothing calls this directly
no test coverage detected