use syn::{ ItemEnum, Item, parse2 };
use proc_macro2::TokenStream;
use quote::ToTokens;
use crate::error::ParseError;
use crate::extension::FromTokens;
impl FromTokens for ItemEnum {
fn from_tokens(tokens: TokenStream) -> Result<Self, ParseError> {
match parse2::<Item>(tokens) {
Ok(Item::Enum(item)) => Ok(item),
Ok(item) => Err(
ParseError::new(
item.to_token_stream(),
String::from("item is not an enum"),
String::from("pkenum::Display can only be used on enums"))),
Err(_) => unreachable!(),
}
}
}