Trait Diagnostic
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<'a>(&'a self) -> Option<&'a 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§
fn 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.
fn 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.
fn 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?
fn 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.
fn source_code(&self) -> Option<&dyn SourceCode>
fn source_code(&self) -> Option<&dyn SourceCode>
Source code to apply this Diagnostic’s Diagnostic::labels to.
fn 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.
fn diagnostic_source<'a>(&'a self) -> Option<&'a dyn Diagnostic>
fn diagnostic_source<'a>(&'a self) -> Option<&'a dyn Diagnostic>
The cause of the error.