rustfmt_config_proc_macro/
lib.rs1#![recursion_limit = "256"]
4
5extern crate proc_macro;
6
7mod attrs;
8mod config_type;
9mod item_enum;
10mod item_struct;
11mod utils;
12
13use proc_macro::TokenStream;
14use syn::parse_macro_input;
15
16#[proc_macro_attribute]
17pub fn config_type(_args: TokenStream, input: TokenStream) -> TokenStream {
18 let input = parse_macro_input!(input as syn::Item);
19 let output = config_type::define_config_type(&input);
20
21 if std::env::var("RUSTFMT_DEV_DEBUG_PROC_MACRO").is_ok() {
22 utils::debug_with_rustfmt(&output);
23 }
24
25 TokenStream::from(output)
26}