Releases: Ethiraric/yaml-rust2
v0.9.0
Breaking Changes
- Update dependencies.
Sincehashlink
is exposed (throughYaml::Hash
) and has been updated from 0.8.4 to 0.9.1, the new version ofyaml-rust2
will not link properly if you explicitly rely onhashlink v0.8
.
Existing code with v0.8.4 should still compile fine in v0.9.1 (see hashlink's v0.9.0 changelog).
Bug fixes
- (#37)
Parse empty scalars as""
instead of"~"
.
Features
- Add
Yaml::is_hash
. - Add better doccomments to the
Index
andIntoIterator
implementations forYaml
to better explain their quirks and design decisions.
v0.8.1
Bug fixes
-
(#29) Fix parsing failing for deeply indented scalar blocks.
-
(#21-comment) Fix parsing failing with comments immediately following a YAML tag.
Features
-
(#19)
Yaml
now implementsIndexMut<usize>
andIndexMut<&'a str>
. These functions may not return a mutable reference to aBAD_VALUE
. Instead,index_mut()
will panic if either:- The index is out of range, as per
IndexMut
's requirements - The inner
Yaml
variant doesn't matchYaml::Array
forusize
orYaml::Hash
for&'a str
- The index is out of range, as per
-
Use cargo features
This allows for more fine-grained control over MSRV and to completely remove debug code from the library when it is consumed.
The
encoding
feature, governing theYamlDecoder
, has been enabled by default. Users of@davvid
's fork ofyaml-rust
or ofyaml-rust2
might already use this. Users of the originalyaml-rust
crate may freely disable this feature (cargo <...> --no-default-features
) and lower MSRV to 1.65.0. -
Duplicate keys no longer allowed
Instead of silently choosing one of two values sharing the same key in a mapping, we now issue an error. This behavior is part of the YAML specification, but not tested by the
yaml-test-suite
(the parser needs to emit events for both key-values). Additionally, there is no standard way of defining which value should be chosen in case of a duplicate.
v0.7.0
Merge with @davvid's repository.
Full changelog, courtesy of @davvid:
Features:
- Multi-line strings are now emitted using block scalars.
- Error messages now contain a byte offset to aid debugging. (#176)
- Yaml now has
or
andborrowed_or
methods. (#179) Yaml::load_from_bytes()
is now available. (#156)- The parser and scanner now return Err() instead of calling panic.
Development:
v0.6.0
First "real" release
While v0.5.0 was certainly an improvement in YAML compliance, performance had significantly dropped. This release fixes performance issues, and should make yaml-rust2
a no-downside replacement for yaml-rust
.
I do consider this as the first "real" release of this crate. More details about the process of writing yaml-rust2
and its improvements over yaml-rust
can be found here
v0.5.0
v0.5.0
First version implementing all of the YAML test suite.
Version numbers are taken over from the original repository, hence starting at v0.5.0.