diff -r 6af892a0a4b8 -r f57a3d48072b rust/hedgewars-server/src/server/haskell.rs --- 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 { map( - surrounded("(", ")", separated_list(comma, value)), + surrounded("(", ")", separated_list0(comma, value)), HaskellValue::Tuple, )(input) } fn list(input: &[u8]) -> HaskellResult { 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,