use thiserror::Error;
#[derive(Debug, Error)]
pub enum TelemetryInitError {
#[error("OTLP exporter build failed: {0}")]
ExporterBuild(#[source] opentelemetry_otlp::ExporterBuildError),
#[error("unknown OTEL_EXPORTER_OTLP_PROTOCOL: {0} (expected `grpc` or `http/protobuf`)")]
UnknownProtocol(String),
#[error("unknown OTEL_SPAN_PROCESSOR: {0} (expected `batch` or `simple`)")]
UnknownSpanProcessor(String),
#[error("unknown OTEL_TRACES_SAMPLER: {0}")]
UnknownSampler(String),
#[error("OTEL_TRACES_SAMPLER_ARG required for ratio-based samplers")]
SamplerArgRequired,
#[error("invalid OTEL_TRACES_SAMPLER_ARG: {0} (expected 0.0..=1.0)")]
InvalidSamplerArg(String),
}