rocket/trace/
macros.rs
1macro_rules! declare_span_macro {
2 ($name:ident $level:ident) => (
3 declare_span_macro!([$] $name $level);
4 );
5
6 ([$d:tt] $name:ident $level:ident) => (
7 #[doc(hidden)]
8 #[macro_export]
9 macro_rules! $name {
10 (@[$d ($t:tt)+] => $in_scope:expr) => ({
11 $crate::tracing::span!($crate::tracing::Level::$level, $d ($t)+)
12 .in_scope(|| $in_scope);
13 });
14
15 (@[$d ($t:tt)+] $token:tt $d ($rest:tt)*) => ({
16 $crate::trace::$name!(@[$d ($t)+ $token] $d ($rest)*);
17 });
18
19 ($t:tt $d ($rest:tt)*) => ({
21 $crate::trace::$name!(@[$t] $d ($rest)*);
22 });
23 }
24
25 #[doc(hidden)]
26 pub use $name as $name;
27 );
28}
29
30#[doc(hidden)]
31#[macro_export]
32macro_rules! event {
33 ($level:expr, $($args:tt)*) => {{
34 match $level {
35 $crate::tracing::Level::ERROR => event!(@$crate::tracing::Level::ERROR, $($args)*),
36 $crate::tracing::Level::WARN => event!(@$crate::tracing::Level::WARN, $($args)*),
37 $crate::tracing::Level::INFO => event!(@$crate::tracing::Level::INFO, $($args)*),
38 $crate::tracing::Level::DEBUG => event!(@$crate::tracing::Level::DEBUG, $($args)*),
39 $crate::tracing::Level::TRACE => event!(@$crate::tracing::Level::TRACE, $($args)*),
40 }
41 }};
42
43 (@$level:expr, $n:expr, $($args:tt)*) => {{
44 $crate::tracing::event!(name: $n, target: concat!("rocket::", $n), $level, $($args)*);
45 }};
46}
47
48macro_rules! reexport {
52 ($path:ident::$name:ident) => (
53 reexport!([$] $path::$name);
54 );
55
56 ([ $d:tt ] $path:ident::$name:ident) => {
57 #[doc(hidden)]
58 #[macro_export]
59 macro_rules! $name {
60 ($d ($f:tt)*) => {
61 $crate::$path::$name!($d ($f)*)
62 }
63 }
64 };
65}
66
67#[doc(hidden)]
68#[macro_export]
69macro_rules! span {
70 ($level:expr, $($args:tt)*) => {{
71 match $level {
72 $crate::tracing::Level::ERROR =>
73 $crate::tracing::span!($crate::tracing::Level::ERROR, $($args)*),
74 $crate::tracing::Level::WARN =>
75 $crate::tracing::span!($crate::tracing::Level::WARN, $($args)*),
76 $crate::tracing::Level::INFO =>
77 $crate::tracing::span!($crate::tracing::Level::INFO, $($args)*),
78 $crate::tracing::Level::DEBUG =>
79 $crate::tracing::span!($crate::tracing::Level::DEBUG, $($args)*),
80 $crate::tracing::Level::TRACE =>
81 $crate::tracing::span!($crate::tracing::Level::TRACE, $($args)*),
82 }
83 }};
84}
85
86#[doc(inline)]
87pub use span as span;
88
89declare_span_macro!(span_error ERROR);
90declare_span_macro!(span_warn WARN);
91declare_span_macro!(span_info INFO);
92declare_span_macro!(span_debug DEBUG);
93declare_span_macro!(span_trace TRACE);
94
95#[doc(inline)]
96pub use event as event;
97
98reexport!(tracing::error);
99reexport!(tracing::warn);
100reexport!(tracing::info);
101reexport!(tracing::debug);
102reexport!(tracing::trace);
103
104#[doc(hidden)] pub use tracing::error;
105#[doc(hidden)] pub use tracing::warn;
106#[doc(hidden)] pub use tracing::info;
107#[doc(hidden)] pub use tracing::debug;
108#[doc(hidden)] pub use tracing::trace;