pub enum ParseError {
Located {
line: usize,
column: usize,
position: usize,
message: String,
hint: Option<String>,
},
UnexpectedToken {
position: usize,
expected: String,
found: String,
},
UnexpectedEof,
InvalidToken {
position: usize,
message: String,
},
InvalidNumber(String),
InvalidDuration(String),
InvalidTimestamp(String),
UnterminatedString(usize),
InvalidEscape(String),
Custom {
span: Span,
message: String,
},
}Expand description
Errors that can occur during VPL parsing.
Variants§
Located
Error with precise source location and an optional hint for the user.
Fields
UnexpectedToken
An unexpected token was encountered during parsing.
Fields
UnexpectedEof
The input ended unexpectedly (e.g., unclosed parenthesis).
InvalidToken
A token that does not belong to the VPL grammar was found.
Fields
InvalidNumber(String)
A numeric literal could not be parsed.
InvalidDuration(String)
A duration literal (e.g., 5s, 100ms) could not be parsed.
InvalidTimestamp(String)
A timestamp literal (e.g., @2024-01-15) could not be parsed.
UnterminatedString(usize)
A string literal was not closed before end of input.
InvalidEscape(String)
An unrecognized escape sequence was found inside a string literal.
Custom
A custom error with an associated source span.
Implementations§
Source§impl ParseError
impl ParseError
Sourcepub fn custom(span: Span, message: impl Into<String>) -> Self
pub fn custom(span: Span, message: impl Into<String>) -> Self
Create a custom error from a source span and message.
Sourcepub fn at_location(
source: &str,
position: usize,
message: impl Into<String>,
hint: Option<String>,
) -> Self
pub fn at_location( source: &str, position: usize, message: impl Into<String>, hint: Option<String>, ) -> Self
Create an error with source location and optional hint
Sourcepub fn source_span(&self, source: &str) -> (usize, usize)
pub fn source_span(&self, source: &str) -> (usize, usize)
Extract the byte offset and length for highlighting in the source.
Returns (offset, length) where length defaults to 1 when only a
point position is available.
Trait Implementations§
Source§impl Clone for ParseError
impl Clone for ParseError
Source§fn clone(&self) -> ParseError
fn clone(&self) -> ParseError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()