use crate::exporter::ExportError;
use crate::runtime::RuntimeError;
use thiserror::Error;
pub type Result<T> = std::result::Result<T, ExtensionError>;
#[non_exhaustive]
#[derive(Debug, Error)]
pub enum ExtensionError {
#[error("configuration error")]
Config(#[source] Box<figment::Error>),
#[error(transparent)]
Export(#[from] ExportError),
#[error(transparent)]
Runtime(#[from] RuntimeError),
#[error("failed to initialise tracing")]
Tracing(#[from] tracing_subscriber::util::TryInitError),
}
impl From<figment::Error> for ExtensionError {
fn from(err: figment::Error) -> Self {
ExtensionError::Config(Box::new(err))
}
}