use crate::{apm_config::ApmConfig, logging_config::LoggingConfig};
pub struct Config {
service: String,
environment: Option<String>,
endpoint: String,
logging_config: LoggingConfig,
apm_config: ApmConfig,
}
impl Default for Config {
fn default() -> Self {
Config {
environment: None,
endpoint: "http://localhost:8123/v0.3/traces".to_owned(),
service: "default".to_owned(),
logging_config: LoggingConfig::default(),
apm_config: ApmConfig::default(),
}
}
}
impl Config {
#[must_use]
pub fn new(
service: String,
environment: Option<String>,
endpoint: String,
logging_config: LoggingConfig,
apm_config: ApmConfig,
) -> Self {
Config {
service,
environment,
endpoint,
logging_config,
apm_config,
}
}
#[must_use]
pub fn service(&self) -> &str {
&self.service
}
#[must_use]
pub fn environment(&self) -> Option<&str> {
self.environment.as_deref()
}
#[must_use]
pub fn endpoint(&self) -> &str {
&self.endpoint
}
#[must_use]
pub fn logging_config(&self) -> &LoggingConfig {
&self.logging_config
}
#[must_use]
pub fn apm_config(&self) -> &ApmConfig {
&self.apm_config
}
}