Skip to main content

strut_tracing/config/
flavor.rs

1use strut_factory::Deserialize as StrutDeserialize;
2
3/// Represents a particular preset of configuration for the
4/// [event formatter](tracing_subscriber::fmt::format::Format) used by the
5/// [formatted `Subscriber`](tracing_subscriber::fmt::Subscriber) of the
6/// `tracing_subscriber` crate.
7#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, StrutDeserialize)]
8#[strut(eq_fn = strut_deserialize::Slug::eq_as_slugs)]
9pub enum FormatFlavor {
10    /// Uses the default [`Full`](tracing_subscriber::fmt::format::Full) event formatting.
11    Full,
12
13    /// Uses the [`Compact`](tracing_subscriber::fmt::format::Compact) event formatting.
14    Compact,
15
16    /// Uses the multi-line [`Pretty`](tracing_subscriber::fmt::format::Pretty) event formatting.
17    Pretty,
18
19    #[cfg(feature = "json")]
20    /// Uses the [`Json`](tracing_subscriber::fmt::format::Json) event formatting.
21    Json,
22}
23
24impl Default for FormatFlavor {
25    /// Defines a reasonable default [`FormatFlavor`].
26    fn default() -> Self {
27        FormatFlavor::Full
28    }
29}