--- a/rust/hedgewars-server/src/server/haskell.rs Tue Jun 22 01:41:33 2021 +0300
+++ b/rust/hedgewars-server/src/server/haskell.rs Tue Jun 22 01:57:50 2021 +0300
@@ -3,7 +3,7 @@
bytes::complete::{escaped_transform, is_not, tag, take_while, take_while1},
character::{is_alphanumeric, is_digit, is_space},
combinator::{map, map_res},
- multi::{many0, separated_list},
+ multi::{many0, separated_list0},
sequence::{delimited, pair, preceded, separated_pair, terminated},
ExtendInto, IResult,
};
@@ -159,10 +159,10 @@
fn surrounded<'a, P, O>(
prefix: &'static str,
suffix: &'static str,
- parser: P,
-) -> impl Fn(&'a [u8]) -> HaskellResult<'a, O>
+ mut parser: P,
+) -> impl FnMut(&'a [u8]) -> HaskellResult<'a, O>
where
- P: Fn(&'a [u8]) -> HaskellResult<'a, O>,
+ P: FnMut(&'a [u8]) -> HaskellResult<'a, O>,
{
move |input| {
delimited(
@@ -285,14 +285,14 @@
fn tuple(input: &[u8]) -> HaskellResult<HaskellValue> {
map(
- surrounded("(", ")", separated_list(comma, value)),
+ surrounded("(", ")", separated_list0(comma, value)),
HaskellValue::Tuple,
)(input)
}
fn list(input: &[u8]) -> HaskellResult<HaskellValue> {
map(
- surrounded("[", "]", separated_list(comma, value)),
+ surrounded("[", "]", separated_list0(comma, value)),
HaskellValue::List,
)(input)
}
@@ -316,7 +316,7 @@
map(
pair(
identifier,
- surrounded("{", "}", separated_list(comma, named_field)),
+ surrounded("{", "}", separated_list0(comma, named_field)),
),
|(name, mut fields)| HaskellValue::Struct {
name,