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 sourceDisplayError
- An error source that implementsDisplay
to be used for tracing, and also be stored as detail.DisplayOnly
- An error source that implementsDisplay
to 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 implementsError
and used only for tracing.TraceClone
- An error source that implementsError
and have a cloned copy as detail.