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