pub trait Diagnostic: Error {
// Provided methods
fn code<'a>(&'a self) -> Option<Box<dyn Display + 'a>> { ... }
fn severity(&self) -> Option<Severity> { ... }
fn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>> { ... }
fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>> { ... }
fn source_code(&self) -> Option<&dyn SourceCode> { ... }
fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>> { ... }
fn related<'a>(
&'a self,
) -> Option<Box<dyn Iterator<Item = &'a dyn Diagnostic> + 'a>> { ... }
fn diagnostic_source(&self) -> Option<&dyn Diagnostic> { ... }
}Expand description
Adds rich metadata to your Error that can be used by
Report to print really nice and human-friendly error
messages.
Provided Methods§
sourcefn code<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
fn code<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
Unique diagnostic code that can be used to look up more information
about this Diagnostic. Ideally also globally unique, and documented
in the toplevel crate’s documentation for easy searching. Rust path
format (foo::bar::baz) is recommended, but more classic codes like
E0123 or enums will work just fine.
sourcefn severity(&self) -> Option<Severity>
fn severity(&self) -> Option<Severity>
Diagnostic severity. This may be used by
ReportHandlers to change the display format
of this diagnostic.
If None, reporters should treat this as Severity::Error.
sourcefn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
fn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
Additional help text related to this Diagnostic. Do you have any
advice for the poor soul who’s just run into this issue?
sourcefn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>
URL to visit for a more detailed explanation/help about this
Diagnostic.
sourcefn source_code(&self) -> Option<&dyn SourceCode>
fn source_code(&self) -> Option<&dyn SourceCode>
Source code to apply this Diagnostic’s Diagnostic::labels to.
sourcefn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>
fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>
Labels to apply to this Diagnostic’s Diagnostic::source_code
Additional related Diagnostics.
sourcefn diagnostic_source(&self) -> Option<&dyn Diagnostic>
fn diagnostic_source(&self) -> Option<&dyn Diagnostic>
The cause of the error.