Skip to content

Commit

Permalink
Make NoSubscriber public and move it to tracing_core::subscriber
Browse files Browse the repository at this point in the history
  • Loading branch information
jsgf committed Sep 10, 2021
1 parent 3bfddc6 commit 71c494d
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 27 deletions.
28 changes: 1 addition & 27 deletions tracing-core/src/dispatcher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@
//! [`Dispatch`]: struct.Dispatch.html
use crate::{
callsite, span,
subscriber::{self, Subscriber},
subscriber::{self, Subscriber, NoSubscriber},
Event, LevelFilter, Metadata,
};

Expand Down Expand Up @@ -661,32 +661,6 @@ where
}
}

struct NoSubscriber;
impl Subscriber for NoSubscriber {
#[inline]
fn register_callsite(&self, _: &'static Metadata<'static>) -> subscriber::Interest {
subscriber::Interest::never()
}

fn new_span(&self, _: &span::Attributes<'_>) -> span::Id {
span::Id::from_u64(0xDEAD)
}

fn event(&self, _event: &Event<'_>) {}

fn record(&self, _span: &span::Id, _values: &span::Record<'_>) {}

fn record_follows_from(&self, _span: &span::Id, _follows: &span::Id) {}

#[inline]
fn enabled(&self, _metadata: &Metadata<'_>) -> bool {
false
}

fn enter(&self, _span: &span::Id) {}
fn exit(&self, _span: &span::Id) {}
}

impl Registrar {
pub(crate) fn try_register(
&self,
Expand Down
31 changes: 31 additions & 0 deletions tracing-core/src/subscriber.rs
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,37 @@ impl Interest {
}
}

/// A no-op [`Subscriber`]
///
/// [`NoSubscriber`] implements the [`Subscriber`] trait by never being enabled,
/// never being interested in any callsite, and drops all spans and events.
#[derive(Debug, Copy, Clone)]
pub struct NoSubscriber;
impl Subscriber for NoSubscriber {
#[inline]
fn register_callsite(&self, _: &'static Metadata<'static>) -> Interest {
Interest::never()
}

fn new_span(&self, _: &span::Attributes<'_>) -> span::Id {
span::Id::from_u64(0xDEAD)
}

fn event(&self, _event: &Event<'_>) {}

fn record(&self, _span: &span::Id, _values: &span::Record<'_>) {}

fn record_follows_from(&self, _span: &span::Id, _follows: &span::Id) {}

#[inline]
fn enabled(&self, _metadata: &Metadata<'_>) -> bool {
false
}

fn enter(&self, _span: &span::Id) {}
fn exit(&self, _span: &span::Id) {}
}

impl Subscriber for Box<dyn Subscriber + Send + Sync + 'static> {
#[inline]
fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest {
Expand Down

0 comments on commit 71c494d

Please sign in to comment.