1#[macro_export] macro_rules!
9level_helper {
10 ( [$level:tt] [ ]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {};
36 ( [$level:tt] [_]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {};
37 ( [$level:tt] [-]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {};
38 ( [$level:tt] [off]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {};
39 ( [$level:tt] [#]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
41 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*);
42 };
43 ( [$level:tt] [x]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
44 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*);
45 };
46 ( [$level:tt] [v]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
47 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*);
48 };
49 ( [$level:tt] [+]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
50 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*);
51 };
52 ( [$level:tt] [on]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
53 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*);
54 };
55 ( [$level:tt] [ ]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {};
58 ( [$level:tt] [_]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {};
59 ( [$level:tt] [-]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {};
60 ( [$level:tt] [off]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {};
61 ( [$level:tt] [#]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
63 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*);
64 };
65 ( [$level:tt] [x]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
66 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*);
67 };
68 ( [$level:tt] [v]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
69 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*);
70 };
71 ( [$level:tt] [+]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
72 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*);
73 };
74 ( [$level:tt] [on]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
75 level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*);
76 };
77 ( [$level:tt] [ ]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {};
81 ( [$level:tt] [_]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {};
82 ( [$level:tt] [-]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {};
83 ( [$level:tt] [off]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {};
84 ( [$level:tt] [#]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
86 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
87 };
88 ( [$level:tt] [x]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
89 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
90 };
91 ( [$level:tt] [v]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
92 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
93 };
94 ( [$level:tt] [+]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
95 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
96 };
97 ( [$level:tt] [on]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
98 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
99 };
100 ( [$level:tt] [ ]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {};
103 ( [$level:tt] [_]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {};
104 ( [$level:tt] [-]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {};
105 ( [$level:tt] [off]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {};
106 ( [$level:tt] [#]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
108 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
109 };
110 ( [$level:tt] [x]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
111 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
112 };
113 ( [$level:tt] [v]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
114 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
115 };
116 ( [$level:tt] [+]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
117 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
118 };
119 ( [$level:tt] [on]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
120 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
121 };
122 ( [$level:tt] [$var:tt]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
125 #[allow(unused_parens)]
129 if $var { level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); }
131 };
132 ( [$level:tt] [$var:tt]; $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
135 #[allow(unused_parens)]
136 if $var { level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); }
137 };
138 ( [$level:tt] [$var:tt]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
141 #[allow(unused_parens)]
142 if $var { $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )* }
143 };
144 ( [$level:tt] [$var:tt]; $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
147 #[allow(unused_parens)]
148 if $var { $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )* }
149 };
150 ( [$level:tt] $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),*;)* ) => {
154 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($msg),*); )*
156 };
157 ( [$level:tt] $($(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),*;)* ) => {
159 $( level_helper!([$level] $(->[$indent $(,$linebefore $(,$lineafter)?)?])? $($key),* => $(->[$indent_v])? $($value),*); )*
161 };
162 ( [$level:tt] $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($msg:expr),* ) => {
166 $($(newline!($linebefore);)?)?
167 msg_render!($level, indent!($($indent)?), $($msg),*);
168 $($($(newline!($lineafter);)?)?)?
169 };
170 ( [$level:tt] $(->[$indent:tt $(,$linebefore:tt $(,$lineafter:tt)?)?])? $($key:expr),* => $(->[$indent_v:tt])? $($value:expr),* ) => {
172 $($(newline!($linebefore);)?)?
173 msg_render!($level, indent_kv!($($indent)?), $($key),* => indent!($($indent_v)?), $($value),*);
174 $($($(newline!($lineafter);)?)?)?
175 };
176}
177
178#[macro_export]
179#[cfg(feature = "trace")] macro_rules!
180trace_inner { ( $($a:tt)* ) => { level_helper!([[trace]] $($a)*); } }
181
182#[macro_export]
183#[cfg(feature = "debug")] macro_rules!
184debug_inner { ( $($a:tt)* ) => { level_helper!([[debug]] $($a)*); } }
185
186#[macro_export]
187#[cfg(feature = "info")] macro_rules!
188info_inner { ( $($a:tt)* ) => { level_helper!([[info]] $($a)*); } }
189
190#[macro_export]
191#[cfg(feature = "warn")] macro_rules!
192warn_inner { ( $($a:tt)* ) => { level_helper!([[warn]] $($a)*); } }
193
194#[macro_export]
195#[cfg(feature = "error")] macro_rules!
196error_inner { ( $($a:tt)* ) => { level_helper!([[error]] $($a)*); } }
197
198#[macro_export]
199#[cfg(feature = "crit")] macro_rules!
200crit_inner { ( $($a:tt)* ) => { level_helper!([[crit]] $($a)*); } }
201