rust/hedgewars-server/src/protocol/parser.rs
changeset 15112 6a1ba3540fa0
parent 15111 1e45db229f9f
child 15114 a7841105493e
--- 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<Vec<HwProtocolMessage>> {
-    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]))
-        );
     }
 }