pub enum ParseError {
FileReadError(Error),
InvalidFormat {
line: usize,
message: String,
},
InvalidKey {
line: usize,
key: String,
},
UndefinedVariable {
line: usize,
var: String,
},
CircularExpansion {
line: usize,
cycle: String,
},
UnterminatedString {
line: usize,
},
ExpansionDepthExceeded {
line: usize,
max: usize,
},
}Expand description
Structured parse errors with line numbers and context.
Implements std::error::Error via thiserror and converts into
anyhow::Error automatically when used with the ? operator inside
a function that returns anyhow::Result. This means no changes are
needed in command files that currently do:
ⓘ
let env_file = parser
.parse_file(&env)
.with_context(|| format!("Failed to parse {}", env))?;Variants§
FileReadError(Error)
The file could not be read from disk.
InvalidFormat
A line did not contain a = separator (and is not a comment or blank).
InvalidKey
A key contains characters outside [A-Za-z][A-Za-z0-9_]*.
UndefinedVariable
A ${VAR} or $VAR reference names a variable that was not defined
earlier in the file.
CircularExpansion
Two or more variables reference each other in a cycle.
UnterminatedString
A quoted string was opened but never closed.
ExpansionDepthExceeded
Expansion depth exceeded ParserConfig::max_expansion_depth.
Trait Implementations§
Source§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
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 ParseError
impl !RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnsafeUnpin for ParseError
impl !UnwindSafe for ParseError
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