#![doc = include_str!("../README.md")]
use crate::generator::Component;
use lazy_static::lazy_static;
use proc_macro::TokenStream;
use syn::parse_macro_input;
const SELF_MANIFEST_DIR: &str = env!("CARGO_MANIFEST_DIR");
lazy_static! {
static ref CARGO: std::path::PathBuf = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
}
mod generator;
mod parse_input;
#[proc_macro]
#[doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/ICON.md"))]
pub fn use_icon(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as parse_input::InputTree);
parse_input::generate_token_stream(input).into()
}
#[proc_macro]
pub fn define_as_component(input: TokenStream) -> TokenStream {
let comp = parse_macro_input!(input as Component);
generator::generate_components(comp).into()
}