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 UnsafeUnpin 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