rusty_cmd/
handlers.rs

1use crate::command_handler::{CommandHandler, CommandResult};
2use std::io;
3
4/// Ready-to-use command to quit the cmd loop
5///
6/// Returning CommandResult::Break instructs the Cmd.run() loop to break
7#[derive(Default)]
8pub struct Quit {}
9
10impl<W: io::Write> CommandHandler<W> for Quit {
11    fn execute(&self, _cmd: &mut W, _args: &[&str]) -> CommandResult {
12        CommandResult::Break
13    }
14}
15
16#[cfg(test)]
17mod tests {
18    use super::*;
19
20    #[test]
21    fn test_quit() {
22        let q = Quit::default();
23        assert!(matches!(
24            q.execute(&mut io::stdout(), &[]),
25            CommandResult::Break
26        ))
27    }
28}