pub struct Error {
pub error: ErrorType,
pub line: usize,
}Expand description
The Error struct represents an error that occurred during parsing or execution, with the line number denoting its position.
Usually, you’ll only need this struct in a function signature to propagate errors. To construct an Error manually, provide an ErrorType and a line number. Alternatively, you can call with_line on an ErrorType enum variant.
§Example
§Accessing error information
use castwright::{Error, ErrorType};
let error_type = ErrorType::UnknownInstruction;
let error = error_type.with_line(1);
assert!(matches!(error.error, ErrorType::UnknownInstruction));
assert_eq!(error.line, 1);§Propagating an error in fn main
ⓘ
use castwright::{CastWright, Error};
use std::io::BufReader;
fn main() -> Result<(), Error> {
let text = r#"
$ unexpected
> continuation
"#;
let text = text.trim();
let mut reader = BufReader::new(text.as_bytes());
let mut stdout = std::io::stdout().lock();
let castwright = CastWright::new();
castwright.run(&mut reader, &mut stdout)?;
Ok(())
}
// Should get the following output:
// Error: Error { error: UnexpectedContinuation, line: 2 }§Constructing an Error manually
ⓘ
use castwright::{Error, ErrorType};
fn main() -> Result<(), Error> {
let error_type = ErrorType::UnknownInstruction;
let error = error_type.with_line(1);
// Or:
// let error = Error {
// error: ErrorType::UnknownInstruction,
// line: 1,
// };
Err(error)
}
// Should get the following output:
// Error: Error { error: UnknownInstruction, line: 1 }Fields§
§error: ErrorTypeThe type of error that occurred.
line: usizeThe line number where the error occurred, starting at 1. If 0, the error is not related to a specific line.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for Error
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more