Skip to main content

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}