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}