diff -r 1e45db229f9f -r 6a1ba3540fa0 rust/hedgewars-server/src/protocol/parser.rs --- a/rust/hedgewars-server/src/protocol/parser.rs Mon Jun 03 23:50:26 2019 +0300 +++ b/rust/hedgewars-server/src/protocol/parser.rs Tue Jun 04 01:32:08 2019 +0300 @@ -277,7 +277,7 @@ |i| cmdc_single_arg(i, "FORCE", yes_no_line, ForceVote), |i| cmdc_single_arg(i, "INFO", a_line, Info), |i| cmdc_single_arg(i, "MAXTEAMS", u8_line, MaxTeams), - |i| cmdc_single_arg(i, "CALLVOTE", |i| opt!(i, voting), CallVote), + |i| cmdc_single_arg(i, "CALLVOTE", voting, |v| CallVote(Some(v))), ))(input) } @@ -287,6 +287,7 @@ alt(( cmd_no_arg_message, cmd_single_arg_message, + |i| tag_no_case("CALLVOTE")(i).map(|(i, _)| (i, CallVote(None))), |i| { precededc(i, hw_tag_no_case("GREETING"), opt_space_arg) .map(|(i, s)| (i, Greeting(s))) @@ -560,15 +561,12 @@ ) } -fn extract_messages(input: &[u8]) -> HwResult> { - many0(message)(input) -} - #[cfg(test)] mod test { - use super::{extract_messages, message}; - use crate::protocol::parser::HwProtocolError; - use crate::protocol::{messages::HwProtocolMessage::*, test::gen_proto_msg}; + use super::message; + use crate::protocol::{ + messages::HwProtocolMessage::*, parser::HwProtocolError, test::gen_proto_msg, + }; use proptest::{proptest, proptest_helper}; #[cfg(test)] @@ -619,14 +617,5 @@ message(b"QUIT\n1\n2\n\n"), Err(nom::Err::Error(HwProtocolError::new())) ); - - assert_eq!( - extract_messages(b"\n\n\n\nPING\n\n"), - Ok((&b""[..], vec![Ping])) - ); - assert_eq!( - extract_messages(b"\n\n\nPING\n\n"), - Ok((&b""[..], vec![Ping])) - ); } }