1#![forbid(unsafe_code)]
2
3extern crate proc_macro;
4
5use proc_macro::TokenStream;
6
7#[proc_macro_derive(TemplateOnce, attributes(template))]
8pub fn derive_template_once(tokens: TokenStream) -> TokenStream {
9 let input = proc_macro2::TokenStream::from(tokens);
10 let output = sailfish_compiler::procmacro::derive_template_once(input);
11 TokenStream::from(output)
12}
13
14#[proc_macro_derive(TemplateMut, attributes(template))]
15pub fn derive_template_mut(tokens: TokenStream) -> TokenStream {
16 let input = proc_macro2::TokenStream::from(tokens);
17 let output = sailfish_compiler::procmacro::derive_template_mut(input);
18 TokenStream::from(output)
19}
20
21#[proc_macro_derive(Template, attributes(template))]
22pub fn derive_template(tokens: TokenStream) -> TokenStream {
23 let input = proc_macro2::TokenStream::from(tokens);
24 let output = sailfish_compiler::procmacro::derive_template(input);
25 TokenStream::from(output)
26}
27
28#[proc_macro_derive(TemplateSimple, attributes(template))]
29pub fn derive_template_simple(tokens: TokenStream) -> TokenStream {
30 let input = proc_macro2::TokenStream::from(tokens);
31 let output = sailfish_compiler::procmacro::derive_template_simple(input);
32 TokenStream::from(output)
33}