diff --git a/tracing-subscriber/src/lib.rs b/tracing-subscriber/src/lib.rs index 57506e1c4f..c52fc98292 100644 --- a/tracing-subscriber/src/lib.rs +++ b/tracing-subscriber/src/lib.rs @@ -98,26 +98,10 @@ use tracing_core::span::Id; #[macro_use] -macro_rules! try_lock { - ($lock:expr) => { - try_lock!($lock, else return) - }; - ($lock:expr, else $els:expr) => { - if let Ok(l) = $lock { - l - } else if std::thread::panicking() { - $els - } else { - panic!("lock poisoned") - } - }; -} +mod macros; pub mod field; pub mod filter; -#[cfg(feature = "fmt")] -#[cfg_attr(docsrs, doc(cfg(feature = "fmt")))] -pub mod fmt; pub mod layer; pub mod prelude; pub mod registry; @@ -132,24 +116,20 @@ pub use filter::EnvFilter; pub use layer::Layer; -#[cfg(feature = "registry")] -#[cfg_attr(docsrs, doc(cfg(feature = "registry")))] -pub use registry::Registry; - -/// -#[cfg(feature = "registry")] -#[cfg_attr(docsrs, doc(cfg(feature = "registry")))] -pub fn registry() -> Registry { - Registry::default() -} +cfg_feature!("fmt", { + pub mod fmt; + pub use fmt::fmt; + pub use fmt::Subscriber as FmtSubscriber; +}); -#[cfg(feature = "fmt")] -#[cfg_attr(docsrs, doc(cfg(feature = "fmt")))] -pub use fmt::Subscriber as FmtSubscriber; +cfg_feature!("registry", { + pub use registry::Registry; -#[cfg(feature = "fmt")] -#[cfg_attr(docsrs, doc(cfg(feature = "fmt")))] -pub use fmt::fmt; + /// + pub fn registry() -> Registry { + Registry::default() + } +}); use std::default::Default; /// Tracks the currently executing span on a per-thread basis. diff --git a/tracing-subscriber/src/macros.rs b/tracing-subscriber/src/macros.rs new file mode 100644 index 0000000000..adda4cc81c --- /dev/null +++ b/tracing-subscriber/src/macros.rs @@ -0,0 +1,24 @@ +macro_rules! try_lock { + ($lock:expr) => { + try_lock!($lock, else return) + }; + ($lock:expr, else $els:expr) => { + if let Ok(l) = $lock { + l + } else if std::thread::panicking() { + $els + } else { + panic!("lock poisoned") + } + }; +} + +macro_rules! cfg_feature { + ($name:literal, { $($item:item)* }) => { + $( + #[cfg(feature = $name)] + #[cfg_attr(docsrs, doc(cfg(feature = $name)))] + $item + )* + } +}