ogrim_macros/lib.rs
1use err::Error;
2use proc_macro::TokenStream;
3use proc_macro2::TokenStream as TokenStream2;
4
5
6mod ast;
7mod emit;
8mod err;
9mod parse;
10
11
12
13#[proc_macro]
14pub fn xml(input: TokenStream) -> TokenStream {
15 run(input.into()).unwrap_or_else(|err| err.to_compile_error()).into()
16}
17
18fn run(input: TokenStream2) -> Result<TokenStream2, Error> {
19 let input = ast::Input::parse_input(input)?;
20 emit::emit(input)
21}