pub trait BackendError: Error + Sync {
type ErrorType: Debug;
// Required methods
fn new<M, S>(
error_type: Self::ErrorType,
message: M,
source_error: S,
) -> Self
where M: Into<String>,
S: Into<Option<Error>>;
fn new_with_traces<M, S>(
error_type: Self::ErrorType,
message: M,
source_error: S,
backtrace: Backtrace,
span_trace: SpanTrace,
) -> Self
where M: Into<String>,
S: Into<Option<Error>>;
fn backtrace(&self) -> Option<&Backtrace>;
fn error_type(&self) -> &Self::ErrorType;
fn message(&self) -> &str;
fn span_trace(&self) -> &SpanTrace;
// Provided method
fn to_different_error<T>(
self,
new_error_type: <T as BackendError>::ErrorType,
new_message: String,
) -> T
where T: BackendError,
Self: Sized + 'static + Send { ... }
}
Expand description
The error types of this program all implement this trait for interoperability.
Required Associated Types§
Required Methods§
fn new<M, S>(error_type: Self::ErrorType, message: M, source_error: S) -> Self
fn new_with_traces<M, S>( error_type: Self::ErrorType, message: M, source_error: S, backtrace: Backtrace, span_trace: SpanTrace, ) -> Self
fn backtrace(&self) -> Option<&Backtrace>
fn error_type(&self) -> &Self::ErrorType
fn message(&self) -> &str
fn span_trace(&self) -> &SpanTrace
Provided Methods§
fn to_different_error<T>( self, new_error_type: <T as BackendError>::ErrorType, new_message: String, ) -> T
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.