pub struct KdlError {
pub input: String,
pub span: SourceSpan,
pub label: Option<&'static str>,
pub help: Option<&'static str>,
pub kind: KdlErrorKind,
}
Expand description
An error that occurs when parsing a KDL document.
This error implements miette::Diagnostic
and can be used to display
detailed, pretty-printed diagnostic messages when using miette::Result
and the "fancy"
feature flag for miette
:
fn main() -> miette::Result<()> {
"foo 1.".parse::<kdl::KdlDocument>()?;
Ok(())
}
This will display a message like:
Error:
× Expected valid value.
╭────
1 │ foo 1.
· ─┬
· ╰── invalid float
╰────
help: Floating point numbers must be base 10, and have numbers after the decimal point.
Fields
input: String
Source string for the KDL document that failed to parse.
span: SourceSpan
Offset in chars of the error.
label: Option<&'static str>
Label text for this span. Defaults to "here"
.
help: Option<&'static str>
Suggestion for fixing the parser error.
kind: KdlErrorKind
Specific error kind for this parser error.
Trait Implementations
sourceimpl Diagnostic for KdlError
impl Diagnostic for KdlError
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? Read moresourcefn 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
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 code(&'a self) -> Option<Box<dyn Display + 'a, Global>>
fn code(&'a self) -> Option<Box<dyn Display + 'a, Global>>
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. Read moresourcefn severity(&self) -> Option<Severity>
fn severity(&self) -> Option<Severity>
Diagnostic severity. This may be used by
ReportHandler
s to change the display format
of this diagnostic. Read moresourcefn url(&'a self) -> Option<Box<dyn Display + 'a, Global>>
fn url(&'a self) -> Option<Box<dyn Display + 'a, Global>>
URL to visit for a more detailed explanation/help about this
Diagnostic
. Read moreAdditional related
Diagnostic
s.sourcefn diagnostic_source(&self) -> Option<&dyn Diagnostic>
fn diagnostic_source(&self) -> Option<&dyn Diagnostic>
The cause of the error.
sourceimpl Error for KdlError
impl Error for KdlError
1.30.0 · sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
impl Eq for KdlError
impl StructuralEq for KdlError
impl StructuralPartialEq for KdlError
Auto Trait Implementations
impl RefUnwindSafe for KdlError
impl Send for KdlError
impl Sync for KdlError
impl Unpin for KdlError
impl UnwindSafe for KdlError
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more