{"ecosystem":"cargo","package":"peg-macros","from_version":null,"to_version":null,"changes":[{"from_version":"0.7.0","to_version":"0.8.0","change_type":"breaking","description":"Allow only lifetime, not type, parameters at the grammar level. (type parameters were never properly supported)","migration_hint":null},{"from_version":"0.7.0","to_version":"0.8.0","change_type":"breaking","description":"Add `'input` lifetime parameter to `ParseElem` trait so implementations can return tokens by reference. (#268)","migration_hint":null},{"from_version":"0.7.0","to_version":"0.8.0","change_type":"breaking","description":"Require `Copy` on `ParseElem::Element` to better represent the expectation that they are cheap to copy/move. --- Contributors: @kevinmehall @zsol @neunenak @fgasperij","migration_hint":null},{"from_version":"0.6.3","to_version":"0.7.0","change_type":"breaking","description":"Add required `is_eof()` method to `Parse` trait (#252)","migration_hint":null},{"from_version":"0.6.3","to_version":"0.7.0","change_type":"breaking","description":"Certain patterns that would infinite-loop or stack overflow if executed are now a compile-time error","migration_hint":null},{"from_version":"0.6.3","to_version":"0.7.0","change_type":"breaking","description":"`mixed_site` hygiene prevents action code from accessing internal parser state variables such as `__input`, `__pos`, etc.","migration_hint":null},{"from_version":"0.5.7","to_version":"0.6.0","change_type":"breaking","description":"Replaced build script integration and nightly-only syntax extension with a procedural macro that works on stable Rust. This means that errors both in the PEG grammar and the Rust code embedded from it are reported with source position by rustc. It even works with RLS!","migration_hint":null},{"from_version":"0.5.7","to_version":"0.6.0","change_type":"breaking","description":"Add the ability to parse non-`str` input by implementing [traits][peg-traits]. It comes with an implementation for `[T]` (including `[u8]`), but you can define the traits for your own types. In fact, the rust-peg grammar is parsed with rust-peg via an implementation for [token trees from `proc-macro2`][tokens].","migration_hint":null},{"from_version":"0.5.7","to_version":"0.6.0","change_type":"breaking","description":"Add `precedence!{}` block for adding a precedence-climbing expression parser integrated with the surrounding PEG source.","migration_hint":null},{"from_version":"0.5.7","to_version":"0.6.0","change_type":"breaking","description":"Report errors in left-recursive rules that would cause infinte loops.","migration_hint":null},{"from_version":"0.5.7","to_version":"0.6.0","change_type":"breaking","description":"Allow rules to accept value and type parameters, including passing closures to replace the `template` syntax.","migration_hint":null}],"total":11,"note":"Curated major-version breaking changes. Always verify against the package's official changelog before migrating.","_cache":"hit"}