All Versions
10
Latest Version
Avg Release Cycle
133 days
Latest Release
344 days ago

Changelog History

  • v3.0.0

    December 12, 2018
    • 3.0 is based on 1.0 and changed:

      pub struct Parser<'a, I, O> { method: Box<Fn(&mut Input<I>) -> Result<O> + 'a>, }

    to

    pub struct Parser\<'a, I, O\> { method: Box\<Fn(&'a [I], usize) -\> Result\<(O, usize)\> + 'a\>, }
    

    This is like 2.0 version, but avoids potential issue such as #23.

    • Toolchain switched to Rust 2018 stable channel.
  • v2.0.0

    October 29, 2017
    • ➕ Add p.expect(_), mark parser as expected, abort early when failed in ordered choice.
  • v2.0.0-beta

    March 07, 2017
    • ➕ Add p.many(range), like p.repeat(range) but return slice instead of vector.
    • ➕ Add p.cache(), can be used to remember parser output result in case of potential backtracking.
  • v2.0.0-alpha

    February 10, 2017
    • 🐎 Greatly improved performance.
    • 📜 Parser as trait, Combinator as wrapper struct.
    • Apply zero-copy strategy.
  • v1.1.0

    October 29, 2017
    • ➕ Add p.expect(_), mark parser as expected, abort early when failed in ordered choice.
  • v1.0.0

    February 15, 2017
    • Remove range() function, one_of() and none_of() can accept range literal as well.
    • 🐎 Performance improvement.
  • v0.9.0

    February 03, 2017
    • 🏗 Can build on Rust stable 1.15.0.
    • p.repeat(n) repeat p exactly n times.
    • Implement Display and Error for pom::Error.

    Thanks for Jeremy Fitzhardinge's contribution.

  • v0.8.0

    January 24, 2017
    • ➕ Add p.name(_), give parser a name to identify parsing errors.
    • ➕ Add p.convert(f), convert parser result to desired value, fail in case of conversion error.
    • list(p,s) backtrack to the last successfully matched element.
    • 🔀 Merged 2 pull requests from new contributors.
  • v0.7.0

    January 22, 2017
    • ➕ Add p.pos() to get input position after matching p.
    • No longer use extra_requirement_in_impl.
    • ➕ Add pom::Parser<I, O> as alias of pom::parser::Parser<'static, I, O>.
  • v0.6.0

    January 17, 2017
    • 📇 Rename eof() to end().
    • 📇 Rename term() to sym().
    • ➕ Add Benchmark and document.