sailfish_macros/
lib.rs

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}