#![warn(missing_docs)]
#![forbid(unsafe_code)]
#[cfg(feature = "metrics")]
pub mod metrics;
#[derive(Clone)]
pub struct Config {
pub debug: bool,
#[cfg(feature = "metrics")]
pub metrics: Option<metrics::MetricsConfig>,
}
impl Default for Config {
fn default() -> Self {
Config {
debug: cfg!(debug_assertions),
#[cfg(feature = "metrics")]
metrics: Some(metrics::MetricsConfig::default()),
}
}
}
#[allow(dead_code)]
pub(crate) struct Client {
token: String,
config: Config,
}
pub fn init(token: impl Into<String>, config: Config) {
let _client = Client { token: token.into(), config: config.clone() };
#[cfg(feature = "metrics")]
metrics::MetricsSdk::init(config.metrics.unwrap_or_default());
}