use std::sync::Arc;
use super::config::TelemetryConfig;
use super::scrubber::Scrubber;
use super::sink::TelemetrySink;
pub(crate) struct TelemetryContext {
pub(crate) sink: Arc<dyn TelemetrySink>,
pub(crate) config: TelemetryConfig,
pub(crate) scrubber: Scrubber,
}
impl TelemetryContext {
pub(crate) fn new(
sink: Arc<dyn TelemetrySink>,
config: TelemetryConfig,
fallback_secret: [u8; 16],
) -> Arc<Self> {
let scrubber = Scrubber::from_config(&config, fallback_secret);
Arc::new(Self {
sink,
config,
scrubber,
})
}
}