# HG changeset patch # User alfadur # Date 1624316270 -10800 # Node ID f57a3d48072ba60fcebf84e81a8783f4709d8b90 # Parent 6af892a0a4b8513a9960409f9ec644af2fed410d update nom diff -r 6af892a0a4b8 -r f57a3d48072b rust/hedgewars-server/Cargo.toml --- a/rust/hedgewars-server/Cargo.toml Tue Jun 22 01:41:33 2021 +0300 +++ b/rust/hedgewars-server/Cargo.toml Tue Jun 22 01:57:50 2021 +0300 @@ -16,11 +16,11 @@ mio = { version = "0.7", features = ["os-poll", "net"] } slab = "0.4" netbuf = "0.4" -nom = "5.1" +nom = "6.2" env_logger = "0.8" log = "0.4" base64 = "0.13" -bitflags = "1.1" +bitflags = "1.2" serde = "1.0" serde_yaml = "0.8" serde_derive = "1.0" @@ -28,4 +28,4 @@ mysql = { version = "15.0", optional = true } [dev-dependencies] -proptest = "0.9" +proptest = "1.0" diff -r 6af892a0a4b8 -r f57a3d48072b rust/hedgewars-server/src/protocol/parser.rs --- 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, 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, 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()), 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,