Trait flex_error::ErrorSource [−][src]
pub trait ErrorSource<Trace> {
    type Source;
    type Detail;
    fn error_details(source: Self::Source) -> (Self::Detail, Option<Trace>);
}Expand description
A type implementing ErrorSource<Trace> is a proxy type that provides the
capability of extracting from an error source of type Self::Source,
returning error detail of type Self::Detail, and an optional error
tracer of type Tracer.
The proxy type Self is not used anywhere. We separate out Self
and Self::Source so that there can be different generic implementations
of error sources, such as for all E: Display or for all E: Error.
There are currently 4 types of error sources:
- NoSource- Indicating the lack of any error source
- DisplayError- An error source that implements- Displayto be used for tracing, and also be stored as detail.
- DisplayOnly- An error source that implements- Displayto be used for tracing, and discarded instead of being stored as detail.
- DetailOnly- An error source that is used as detail and do not contain any error trace.
- TraceError- An error source that implements- Errorand used only for tracing.
- TraceClone- An error source that implements- Errorand have a cloned copy as detail.
Associated Types
Required methods
Implementors
impl<E, Tracer> ErrorSource<Tracer> for DisplayError<E> where
    E: Display,
    Tracer: ErrorMessageTracer, impl<E, Tracer> ErrorSource<Tracer> for DisplayOnly<E> where
    E: Display,
    Tracer: ErrorMessageTracer,