From e6ed91d0efab436c8a1ca4b6f701b6a9a4d96ccd Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 11 Apr 2023 20:45:11 +0200 Subject: Refactoring, move where whitespace is handled --- src/parser.rs | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'src/parser.rs') diff --git a/src/parser.rs b/src/parser.rs index 3a7d129..38b88f3 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -8,8 +8,6 @@ use thiserror::Error; #[derive(Parser, Clone, Debug, PartialEq, Eq)] #[command(name = "")] pub enum ShackleCommand { - #[command(skip)] - Whitespace, Exit, /// List all repositories available List, @@ -80,17 +78,13 @@ impl FromStr for ShackleCommand { fn from_str(s: &str) -> Result { let trimmed = s.trim(); - if trimmed.len() == 0 { - Ok(ShackleCommand::Whitespace) - } else { - let lexed = shlex::split(trimmed); - match lexed { - None => Err(ParserError::LexerError("Incomplete input".to_string())), - Some(lexed) => { - let parsed = - ShackleCommand::try_parse_from(["".to_owned()].into_iter().chain(lexed))?; - Ok(parsed) - } + let lexed = shlex::split(trimmed); + match lexed { + None => Err(ParserError::LexerError("Incomplete input".to_string())), + Some(lexed) => { + let parsed = + ShackleCommand::try_parse_from(["".to_owned()].into_iter().chain(lexed))?; + Ok(parsed) } } } @@ -154,12 +148,4 @@ mod test { }) ); } - - #[test] - fn it_parses_whitespace_correctly() { - assert_eq!( - " ".parse::().unwrap(), - ShackleCommand::Whitespace - ); - } } -- cgit v1.2.3