1extern crate proc_macro;
2
3mod html;
4mod spread;
5
6#[proc_macro_derive(Spread, attributes(prefix, suffix, rename, escape_value, tags))]
7pub fn spread(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
8 let input = syn::parse_macro_input!(input as syn::DeriveInput);
9
10 spread::generate_spread_impl(&input)
11 .unwrap_or_else(syn::Error::into_compile_error)
12 .into()
13}
14
15#[proc_macro]
16pub fn html(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
17 html::generate_markup_expr(input.into())
18 .unwrap_or_else(syn::Error::into_compile_error)
19 .into()
20}