--- a/rust/hedgewars-server/src/protocol/parser.rs Tue Jun 22 01:41:33 2021 +0300
+++ b/rust/hedgewars-server/src/protocol/parser.rs Tue Jun 22 01:57:50 2021 +0300
@@ -12,7 +12,7 @@
character::complete::{newline, not_line_ending},
combinator::{map, peek},
error::{ErrorKind, ParseError},
- multi::separated_list,
+ multi::separated_list0,
sequence::{delimited, pair, preceded, terminated, tuple},
Err, IResult,
};
@@ -211,7 +211,7 @@
name: &'a str,
parser: F,
constructor: G,
- ) -> impl Fn(&'a [u8]) -> HwResult<'a, HwProtocolMessage>
+ ) -> impl FnMut(&'a [u8]) -> HwResult<'a, HwProtocolMessage>
where
F: Fn(&[u8]) -> HwResult<T>,
G: Fn(T) -> HwProtocolMessage,
@@ -249,7 +249,7 @@
name: &'a str,
parser: F,
constructor: G,
- ) -> impl Fn(&'a [u8]) -> HwResult<'a, HwProtocolMessage>
+ ) -> impl FnMut(&'a [u8]) -> HwResult<'a, HwProtocolMessage>
where
F: Fn(&'a [u8]) -> HwResult<'a, T>,
G: Fn(T) -> HwProtocolMessage,
@@ -308,7 +308,7 @@
tag_no_case("RND"),
alt((
map(peek(end_of_message), |_| vec![]),
- preceded(spaces, separated_list(spaces, cmd_arg)),
+ preceded(spaces, separated_list0(spaces, cmd_arg)),
)),
),
Rnd,
@@ -322,7 +322,7 @@
name: &'a str,
parser: F,
constructor: G,
- ) -> impl Fn(&'a [u8]) -> HwResult<'a, GameCfg>
+ ) -> impl FnMut(&'a [u8]) -> HwResult<'a, GameCfg>
where
F: Fn(&[u8]) -> HwResult<T>,
G: Fn(T) -> GameCfg,
@@ -354,7 +354,7 @@
a_line,
alt((
map(peek(end_of_message), |_| None),
- map(preceded(newline, separated_list(newline, a_line)), Some),
+ map(preceded(newline, separated_list0(newline, a_line)), Some),
)),
),
|(name, values)| GameCfg::Scheme(name, values.unwrap_or_default()),