litenum 1.1.1

minimal convertion utilities between literal and enum
Documentation
use crate::components::SimpleEnum;
use proc_macro2::TokenStream;
use syn::{Result, parse2};
use quote::quote;


pub(super) fn to(enum_tokens: TokenStream) -> Result<TokenStream> {
    let simple_enum = parse2::<SimpleEnum>(enum_tokens.clone())?;
    let to_lit_impl = simple_enum.to_lit_impl();

    Ok(quote!{
        #[allow(non_camel_case_types)]
        #enum_tokens
        #to_lit_impl
    })
}

pub(super) fn from(enum_tokens: TokenStream) -> Result<TokenStream> {
    let simple_enum = parse2::<SimpleEnum>(enum_tokens.clone())?;
    let from_lit_impl = simple_enum.from_lit_impl();

    Ok(quote!{
        #[allow(non_camel_case_types)]
        #enum_tokens
        #from_lit_impl
    })
}

pub(super) fn ium(enum_tokens: TokenStream) -> Result<TokenStream> {
    let simple_enum = parse2::<SimpleEnum>(enum_tokens.clone())?;
    let to_lit_impl   = simple_enum.to_lit_impl();
    let from_lit_impl = simple_enum.from_lit_impl();

    Ok(quote!{
        #[allow(non_camel_case_types)]
        #enum_tokens
        #to_lit_impl
        #from_lit_impl
    })
}