mirror of
https://github.com/RustPython/Parser.git
synced 2025-07-19 02:55:50 +00:00
29 lines
656 B
Rust
29 lines
656 B
Rust
#[derive(Clone, Copy)]
|
|
pub enum Mode {
|
|
Exec,
|
|
Eval,
|
|
Single,
|
|
}
|
|
|
|
impl std::str::FromStr for Mode {
|
|
type Err = ModeParseError;
|
|
fn from_str(s: &str) -> Result<Self, ModeParseError> {
|
|
match s {
|
|
"exec" => Ok(Mode::Exec),
|
|
"eval" => Ok(Mode::Eval),
|
|
"single" => Ok(Mode::Single),
|
|
_ => Err(ModeParseError { _priv: () }),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
pub struct ModeParseError {
|
|
_priv: (),
|
|
}
|
|
|
|
impl std::fmt::Display for ModeParseError {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
|
write!(f, r#"mode should be "exec", "eval", or "single""#)
|
|
}
|
|
}
|