use miette::Diagnostic;
use thiserror::Error;
#[derive(Debug, Error, Diagnostic)]
#[non_exhaustive]
pub enum TelemetryError {
#[error("sink I/O error: {0}")]
#[diagnostic(code(rtb::telemetry::io))]
Io(#[from] std::io::Error),
#[error("serialisation error: {0}")]
#[diagnostic(code(rtb::telemetry::serde))]
Serde(String),
#[error("HTTP telemetry sink error: {0}")]
#[diagnostic(code(rtb::telemetry::http))]
Http(String),
#[error("OTLP telemetry sink error: {0}")]
#[diagnostic(code(rtb::telemetry::otlp))]
Otlp(String),
}