rustpython_compiler_core/
mode.rs1pub use rustpython_parser_core::mode::ModeParseError;
2
3#[derive(Clone, Copy)]
4pub enum Mode {
5 Exec,
6 Eval,
7 Single,
8 BlockExpr,
9}
10
11impl std::str::FromStr for Mode {
12 type Err = ModeParseError;
13
14 fn from_str(s: &str) -> Result<Self, Self::Err> {
16 match s {
17 "exec" => Ok(Mode::Exec),
18 "eval" => Ok(Mode::Eval),
19 "single" => Ok(Mode::Single),
20 _ => Err(ModeParseError),
21 }
22 }
23}
24
25impl From<Mode> for rustpython_parser_core::Mode {
26 fn from(mode: Mode) -> Self {
27 match mode {
28 Mode::Exec => Self::Module,
29 Mode::Eval => Self::Expression,
30 Mode::Single | Mode::BlockExpr => Self::Interactive,
31 }
32 }
33}