tfmt_macros/
lib.rs

1//! `tfmt` macros
2
3extern crate proc_macro;
4
5mod parser;
6use parser::{mk_ident, Piece};
7
8mod write_gen;
9use write_gen::write;
10
11mod debug_gen;
12use debug_gen::debug_gen;
13
14use proc_macro::TokenStream;
15
16#[proc_macro]
17pub fn uwrite(input: TokenStream) -> TokenStream {
18    write(input, false)
19}
20
21#[proc_macro]
22pub fn uwriteln(input: TokenStream) -> TokenStream {
23    write(input, true)
24}
25
26/// Automatically derive the `uDebug` trait for a `struct` or `enum`
27///
28/// Supported items
29///
30/// - `struct`-s
31/// - `enum`-s
32///
33/// `union`-s are not supported
34#[proc_macro_derive(uDebug)]
35pub fn debug(input: TokenStream) -> TokenStream {
36    debug_gen(input)
37}