mirror of
https://gitee.com/openharmony/third_party_rust_nom
synced 2024-11-23 15:40:19 +00:00
104 lines
4.3 KiB
Markdown
104 lines
4.3 KiB
Markdown
# Change Log
|
|
|
|
## [Unreleased][unreleased]
|
|
|
|
### Changed
|
|
|
|
## 0.2.1 - 2015-04-04
|
|
|
|
### Thanks
|
|
- @mtsr for catching the remaining debug println!
|
|
- @jag426 who killed a lot of warnings
|
|
- @skade for removing the dependency on the core feature gate
|
|
|
|
|
|
### Added
|
|
- little endian unsigned int parsers le_u8, le_u16, le_u32, le_u64
|
|
- `count!` to apply a parser a specified number of times
|
|
- `cond!` applies a parser if the condition is met
|
|
- more parser development tools in `util::*`
|
|
|
|
### Fixed
|
|
- in one case, `opt!` would not compile
|
|
|
|
### Removed
|
|
- most of the feature gates are now removed. The only one still needed is `collections`
|
|
|
|
## 0.2.0 - 2015-03-24
|
|
*works with `rustc 1.0.0-dev (81e2396c7 2015-03-19) (built 2015-03-19)`*
|
|
|
|
### Thanks
|
|
- Ryman for the AsBytes implementation
|
|
- jag426 and jaredly for documentation fixes
|
|
- eternaleye on #rust IRC for his help on the new macro syntax
|
|
|
|
### Changed
|
|
- the AsBytes trait improves readability, no more b"...", but "..." instead
|
|
- Incomplete will now hold either Needed;;Unknown, or Needed::Size(u32). Matching on Incomplete without caring for the value is done with `Incomplete(_)`, but if more granularity is mandatory, `Needed` can be matched too
|
|
- `alt!` can pass the result of the parser to a closure
|
|
- the `take_*` macros changed behaviour, the default case is now not to consume the separator. The macros have been renamed as follows: `take_until!` -> `take_until_and_consume!`, `take_until_and_leave!` -> `take_until!`, `take_until_either_and_leave!` -> `take_until_either!`, `take_until_either!` -> `take_until_either_and_consume!`
|
|
|
|
### Added
|
|
- `peek!` macro: matches the future input but does not consume it
|
|
- `length_value!` macro: the first argument is a parser returning a `n` that can cast to usize, then applies the second parser `n` times. The macro has a variant with a third argument indicating the expected input size for the second parser
|
|
- benchmarks are available at https://github.com/Geal/nom_benchmarks
|
|
- more documentation
|
|
- **Unnamed parser syntax**: warning, this is a breaking change. With this new syntax, the macro combinators do not generate functions anymore, they create blocks. That way, they can be nested, for better readability. The `named!` macro is provided to create functions from parsers. Please be aware that nesting parsers comes with a small cost of compilation time, negligible in most cases, but can quickly get to the minutes scale if not careful. If this happens, separate your parsers in multiple subfunctions.
|
|
- `named!`, `closure!` and `call!` macros used to support the unnamed syntax
|
|
- `map!`, `map_opt!` and `map_res!` to combine a parser with a normal function, transforming the input directly, or returning an `Option` or `Result`
|
|
|
|
### Fixed
|
|
- `is_a!` is now working properly
|
|
|
|
### Removed
|
|
- the `o!` macro does less than `chain!`, so it has been removed
|
|
- the `fold0!` and `fold1!` macros were too complex and awkward to use, the `many*` combinators will be useful for most uses for now
|
|
|
|
## 0.1.6 - 2015-02-24
|
|
### Changed
|
|
- consumers must have an end method that will be called after parsing
|
|
|
|
### Added
|
|
- big endian unsigned int and float parsers: be_u8, be_u16, be_u32, be_u64, be_f32, be_f64
|
|
- producers can seek
|
|
- function and macros documentation
|
|
- README documentation
|
|
### Fixed
|
|
- lifetime declarations
|
|
- tag! can return Incomplete
|
|
|
|
## 0.1.5 - 2015-02-17
|
|
### Changed
|
|
- traits were renamed: FlatMapper -> FlatMap, Mapper -> FlatMapOpt, Mapper2 -> Functor
|
|
|
|
### Fixed
|
|
- woeks with rustc f1bb6c2f4
|
|
|
|
## 0.1.4 - 2015-02-17
|
|
### Changed
|
|
- the chaining macro can take optional arguments with '?'
|
|
|
|
## 0.1.3 - 2015-02-16
|
|
### Changed
|
|
- the chaining macro now takes the closure at the end of the argument list
|
|
|
|
## 0.1.2 - 2015-02-16
|
|
### Added
|
|
- flat_map implementation for <&[u8], &[u8]>
|
|
- chaining macro
|
|
- partial MP4 parser example
|
|
|
|
|
|
## 0.1.1 - 2015-02-06
|
|
### Fixed
|
|
- closure syntax change
|
|
|
|
[unreleased]: https://github.com/Geal/nom/compare/0.2.0...HEAD
|
|
[0.2.0]: https://github.com/Geal/nom/compare/0.1.6...0.2.0
|
|
[0.1.6]: https://github.com/Geal/nom/compare/0.1.5...0.1.6
|
|
[0.1.5]: https://github.com/Geal/nom/compare/0.1.4...0.1.5
|
|
[0.1.4]: https://github.com/Geal/nom/compare/0.1.3...0.1.4
|
|
[0.1.3]: https://github.com/Geal/nom/compare/0.1.2...0.1.3
|
|
[0.1.2]: https://github.com/Geal/nom/compare/0.1.1...0.1.2
|
|
[0.1.1]: https://github.com/Geal/nom/compare/0.1.0...0.1.1
|