use thiserror::Error;
#[derive(Debug, Error)]
pub enum TelemetryError {
#[error("Failed to initialize telemetry: {0}")]
InitializationFailed(String),
#[error("Invalid telemetry configuration: {0}")]
InvalidConfiguration(String),
#[error("Failed to export telemetry data: {0}")]
ExportFailed(String),
#[error("Tracing subscriber error: {0}")]
TracingError(String),
#[cfg(feature = "opentelemetry")]
#[error("OpenTelemetry error: {0}")]
OpenTelemetryError(String),
#[cfg(feature = "prometheus")]
#[error("Metrics error: {0}")]
MetricsError(String),
}
pub type TelemetryResult<T> = Result<T, TelemetryError>;