ligen-core 0.1.0

Language Interface Generator Core
Documentation
use quote::quote;
use quote::{TokenStreamExt, ToTokens};

#[derive(Clone, Debug)]
pub struct Identifier {
    pub name : String
}

impl Identifier {
    pub fn new(name: &str) -> Identifier {
        Identifier {
            name : String::from(name)
        }
    }

    pub fn parse(ident: &syn::Ident) -> Identifier {
        Identifier {
            name: ident.to_string()
        }
    }
}

impl ToTokens for Identifier {
    fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
        let identifier = proc_macro2::Ident::new(&format!("{}", self.name), proc_macro2::Span::call_site());
        tokens.append_all(quote!{
            #identifier
        });
    }
}