refactor(meta-command): have execute be a member function
This commit is contained in:
parent
ee23572983
commit
711d51090e
2 changed files with 15 additions and 4 deletions
|
|
@ -1,19 +1,18 @@
|
|||
use osdb::branding::startup_msg;
|
||||
use osdb::cli::read_input;
|
||||
use osdb::command::Command;
|
||||
use osdb::meta_commands::MetaCommand;
|
||||
|
||||
fn main() {
|
||||
startup_msg();
|
||||
while let Some(input) = read_input() {
|
||||
match input.parse() {
|
||||
Ok(cmd) => match cmd {
|
||||
Command::MetaCommand(cmd) => match cmd {
|
||||
MetaCommand::Exit => {
|
||||
Command::MetaCommand(cmd) => {
|
||||
if cmd.execute().should_exit {
|
||||
println!("Good-bye");
|
||||
break;
|
||||
}
|
||||
},
|
||||
}
|
||||
Command::Statement(stmt) => stmt.execute(),
|
||||
},
|
||||
Err(err) => eprintln!("{err}"),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,18 @@ pub enum MetaCommand {
|
|||
Exit,
|
||||
}
|
||||
|
||||
pub struct MetaCommandExecuteResult {
|
||||
pub should_exit: bool,
|
||||
}
|
||||
|
||||
impl MetaCommand {
|
||||
pub fn execute(&self) -> MetaCommandExecuteResult {
|
||||
match self {
|
||||
MetaCommand::Exit => MetaCommandExecuteResult { should_exit: true },
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub enum MetaCommandParseError {
|
||||
Unrecognized { cmd: String },
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue