opentelemetry_lambda_extension/
error.rs

1//! Error types for the Lambda OTel extension.
2
3use crate::exporter::ExportError;
4use crate::runtime::RuntimeError;
5use thiserror::Error;
6
7/// A specialised Result type for extension operations.
8pub type Result<T> = std::result::Result<T, ExtensionError>;
9
10/// Errors that can occur in the extension.
11#[non_exhaustive]
12#[derive(Debug, Error)]
13pub enum ExtensionError {
14    /// Configuration error.
15    #[error("configuration error")]
16    Config(#[source] Box<figment::Error>),
17
18    /// Export error.
19    #[error(transparent)]
20    Export(#[from] ExportError),
21
22    /// Runtime error.
23    #[error(transparent)]
24    Runtime(#[from] RuntimeError),
25
26    /// Tracing subscriber initialisation failed.
27    #[error("failed to initialise tracing")]
28    Tracing(#[from] tracing_subscriber::util::TryInitError),
29}
30
31impl From<figment::Error> for ExtensionError {
32    fn from(err: figment::Error) -> Self {
33        ExtensionError::Config(Box::new(err))
34    }
35}