Skip to content

Commit 8f59b15

Browse files
committed
refactor: Use Deref instead of CommonSettings trait
1 parent 7a4fdd8 commit 8f59b15

File tree

5 files changed

+46
-55
lines changed

5 files changed

+46
-55
lines changed

crates/stackable-telemetry/src/tracing/mod.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use opentelemetry_sdk::{
1414
trace, Resource,
1515
};
1616
use opentelemetry_semantic_conventions::resource;
17-
use settings::{CommonSettings as _, ConsoleLogSettings, OtlpLogSettings, OtlpTraceSettings};
17+
use settings::{ConsoleLogSettings, OtlpLogSettings, OtlpTraceSettings};
1818
use snafu::{ResultExt as _, Snafu};
1919
use tracing::subscriber::SetGlobalDefaultError;
2020
use tracing_subscriber::{filter::Directive, layer::SubscriberExt, EnvFilter, Layer, Registry};
@@ -169,22 +169,22 @@ impl Tracing {
169169
pub fn init(mut self) -> Result<Tracing> {
170170
let mut layers: Vec<Box<dyn Layer<Registry> + Sync + Send>> = Vec::new();
171171

172-
if self.console_log_settings.enabled() {
172+
if self.console_log_settings.enabled {
173173
let env_filter_layer = env_filter_builder(
174174
self.console_log_settings
175175
.common_settings
176176
.environment_variable,
177-
self.console_log_settings.default_level(),
177+
self.console_log_settings.default_level,
178178
);
179179
let console_output_layer =
180180
tracing_subscriber::fmt::layer().with_filter(env_filter_layer);
181181
layers.push(console_output_layer.boxed());
182182
}
183183

184-
if self.otlp_log_settings.enabled() {
184+
if self.otlp_log_settings.enabled {
185185
let env_filter_layer = env_filter_builder(
186-
self.otlp_log_settings.environment_variable(),
187-
self.otlp_log_settings.default_level(),
186+
self.otlp_log_settings.environment_variable,
187+
self.otlp_log_settings.default_level,
188188
)
189189
// TODO (@NickLarsenNZ): Remove this directive once https://github.com/open-telemetry/opentelemetry-rust/issues/761 is resolved
190190
.add_directive("h2=off".parse().expect("invalid directive"));
@@ -209,12 +209,12 @@ impl Tracing {
209209
self.logger_provider = Some(otel_log);
210210
}
211211

212-
if self.otlp_trace_settings.enabled() {
212+
if self.otlp_trace_settings.enabled {
213213
let env_filter_layer = env_filter_builder(
214214
self.otlp_trace_settings
215215
.common_settings
216216
.environment_variable,
217-
self.otlp_trace_settings.default_level(),
217+
self.otlp_trace_settings.default_level,
218218
)
219219
// TODO (@NickLarsenNZ): Remove this directive once https://github.com/open-telemetry/opentelemetry-rust/issues/761 is resolved
220220
.add_directive("h2=off".parse().expect("invalid directive"));
@@ -262,12 +262,12 @@ impl Tracing {
262262
impl Drop for Tracing {
263263
fn drop(&mut self) {
264264
tracing::debug!(
265-
opentelemetry.tracing.enabled = self.otlp_trace_settings.enabled(),
266-
opentelemetry.logger.enabled = self.otlp_log_settings.enabled(),
265+
opentelemetry.tracing.enabled = self.otlp_trace_settings.enabled,
266+
opentelemetry.logger.enabled = self.otlp_log_settings.enabled,
267267
"shutting down opentelemetry OTLP providers"
268268
);
269269

270-
if self.otlp_trace_settings.enabled() {
270+
if self.otlp_trace_settings.enabled {
271271
// NOTE (@NickLarsenNZ): This might eventually be replaced with something like SdkMeterProvider::shutdown(&self)
272272
// as has been done with the LoggerProvider (further below)
273273
// see: https://github.com/open-telemetry/opentelemetry-rust/pull/1412/files#r1409608679
@@ -495,8 +495,8 @@ mod test {
495495
log_format: Default::default()
496496
}
497497
);
498-
assert!(!trace_guard.otlp_log_settings.enabled());
499-
assert!(!trace_guard.otlp_trace_settings.enabled());
498+
assert!(!trace_guard.otlp_log_settings.enabled);
499+
assert!(!trace_guard.otlp_trace_settings.enabled);
500500
}
501501

502502
#[test]

crates/stackable-telemetry/src/tracing/settings/console_log.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
//! Console Log Subscriber Settings.
22
3-
use super::{Build, CommonSettings, Settings, SettingsBuilder};
3+
use std::ops::Deref;
4+
5+
use super::{Build, Settings, SettingsBuilder};
46

57
/// Configure specific settings for the Console Log subscriber.
68
#[derive(Debug, Default, PartialEq)]
@@ -12,6 +14,14 @@ pub struct ConsoleLogSettings {
1214
pub log_format: Format,
1315
}
1416

17+
impl Deref for ConsoleLogSettings {
18+
type Target = Settings;
19+
20+
fn deref(&self) -> &Self::Target {
21+
&self.common_settings
22+
}
23+
}
24+
1525
/// Console Subscriber log event output formats.
1626
///
1727
/// Currently, only [Plain][Format::Plain] is supported.
@@ -75,12 +85,6 @@ impl Build<ConsoleLogSettings> for SettingsBuilder {
7585
}
7686
}
7787

78-
impl CommonSettings for ConsoleLogSettings {
79-
fn common(&self) -> &Settings {
80-
&self.common_settings
81-
}
82-
}
83-
8488
#[cfg(test)]
8589
mod test {
8690
use tracing::level_filters::LevelFilter;

crates/stackable-telemetry/src/tracing/settings/mod.rs

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,6 @@ pub use otlp_log::*;
1111
pub mod otlp_trace;
1212
pub use otlp_trace::*;
1313

14-
/// Simplifies access common settings from subscriber specific settings.
15-
pub trait CommonSettings {
16-
/// Access to common settings.
17-
fn common(&self) -> &Settings;
18-
19-
/// Access to the [`Settings::environment_variable`] field.
20-
fn environment_variable(&self) -> &'static str {
21-
self.common().environment_variable
22-
}
23-
24-
/// Access to the [`Settings::default_level`] field.
25-
fn default_level(&self) -> LevelFilter {
26-
self.common().default_level
27-
}
28-
29-
/// Access to the [`Settings::enabled`] field.
30-
fn enabled(&self) -> bool {
31-
self.common().enabled
32-
}
33-
}
34-
3514
/// General settings that apply to any subscriber.
3615
#[derive(Debug, PartialEq)]
3716
pub struct Settings {

crates/stackable-telemetry/src/tracing/settings/otlp_log.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
//! OTLP Log Subscriber Settings.
22
3-
use super::{Build, CommonSettings, Settings, SettingsBuilder};
3+
use std::ops::Deref;
4+
5+
use super::{Build, Settings, SettingsBuilder};
46

57
#[derive(Debug, Default, PartialEq)]
68
pub struct OtlpLogSettings {
79
pub common_settings: Settings,
810
}
911

12+
impl Deref for OtlpLogSettings {
13+
type Target = Settings;
14+
15+
fn deref(&self) -> &Self::Target {
16+
&self.common_settings
17+
}
18+
}
19+
1020
pub struct OtlpLogSettingsBuilder {
1121
pub(crate) common_settings: Settings,
1222
}
@@ -40,12 +50,6 @@ impl Build<OtlpLogSettings> for SettingsBuilder {
4050
}
4151
}
4252

43-
impl CommonSettings for OtlpLogSettings {
44-
fn common(&self) -> &Settings {
45-
&self.common_settings
46-
}
47-
}
48-
4953
#[cfg(test)]
5054
mod test {
5155
use tracing::level_filters::LevelFilter;

crates/stackable-telemetry/src/tracing/settings/otlp_trace.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
//! OTLP Trace Subscriber Settings.
22
3-
use super::{Build, CommonSettings, Settings, SettingsBuilder};
3+
use std::ops::Deref;
4+
5+
use super::{Build, Settings, SettingsBuilder};
46

57
#[derive(Debug, Default, PartialEq)]
68
pub struct OtlpTraceSettings {
79
pub common_settings: Settings,
810
}
911

12+
impl Deref for OtlpTraceSettings {
13+
type Target = Settings;
14+
15+
fn deref(&self) -> &Self::Target {
16+
&self.common_settings
17+
}
18+
}
19+
1020
pub struct OtlpTraceSettingsBuilder {
1121
pub(crate) common_settings: Settings,
1222
}
@@ -40,12 +50,6 @@ impl Build<OtlpTraceSettings> for SettingsBuilder {
4050
}
4151
}
4252

43-
impl CommonSettings for OtlpTraceSettings {
44-
fn common(&self) -> &Settings {
45-
&self.common_settings
46-
}
47-
}
48-
4953
#[cfg(test)]
5054
mod test {
5155
use tracing::level_filters::LevelFilter;

0 commit comments

Comments
 (0)