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}