pub trait ErrSpan {
type Result;
// Required method
fn err_span(self, span: Span) -> Self::Result;
}
Expand description
An extension trait for Result
, which adds a span to the error type.
Required Associated Types§
Required Methods§
Sourcefn err_span(self, span: Span) -> Self::Result
fn err_span(self, span: Span) -> Self::Result
Add the given span to the error type E
, turning it into a Spanned<E>
.
Some auto-conversion methods to ShellError
from other error types are available on spanned
errors, to give users better information about where an error came from. For example, it is
preferred when working with std::io::Error
:
use nu_protocol::{ErrSpan, ShellError, Span};
use std::io::Read;
fn read_from(mut reader: impl Read, span: Span) -> Result<Vec<u8>, ShellError> {
let mut vec = vec![];
reader.read_to_end(&mut vec).err_span(span)?;
Ok(vec)
}