diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 46916098..7e2b5a86 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -36,7 +36,7 @@ rio_api = "0.5" rio_turtle = "0.5" rio_xml = "0.5" hex = "0.4" -nom = "5" +nom = "6" peg = "0.6" siphasher = "0.3" lasso = {version="0.3", features=["multi-threaded"]} diff --git a/lib/src/model/xsd/parser.rs b/lib/src/model/xsd/parser.rs index 31404eba..c4710c02 100644 --- a/lib/src/model/xsd/parser.rs +++ b/lib/src/model/xsd/parser.rs @@ -102,10 +102,6 @@ impl ParseError<&str> for XsdParseError { fn or(self, other: Self) -> Self { other } - - fn add_context(_input: &str, _ctx: &'static str, other: Self) -> Self { - other - } } impl From for XsdParseError { @@ -150,7 +146,7 @@ const OVERFLOW_ERROR: XsdParseError = XsdParseError { }; pub fn parse_value<'a, T>( - f: impl Fn(&'a str) -> XsdResult<'a, T>, + mut f: impl FnMut(&'a str) -> XsdResult<'a, T>, input: &'a str, ) -> Result { let (left, result) = f(input)?; @@ -533,9 +529,9 @@ fn parsed_u8_range(input: &str, min: u8, max: u8) -> Result { } pub fn map_res<'a, O1, O2, E2: Into>( - first: impl Fn(&'a str) -> XsdResult<'a, O1>, - second: impl Fn(O1) -> Result, -) -> impl Fn(&'a str) -> XsdResult<'a, O2> { + mut first: impl FnMut(&'a str) -> XsdResult<'a, O1>, + mut second: impl FnMut(O1) -> Result, +) -> impl FnMut(&'a str) -> XsdResult<'a, O2> { move |input| { let (input, o1) = first(input)?; Ok((input, second(o1).map_err(|e| Err::Error(e.into()))?))