6 releases (3 breaking)
0.4.0 | Jul 31, 2024 |
---|---|
0.3.0 | Nov 21, 2023 |
0.2.0 | Oct 18, 2019 |
0.1.3 | Oct 15, 2019 |
#429 in Encoding
231 downloads per month
Used in 3 crates
(2 directly)
13KB
218 lines
About
YAML Hash with merge/update capabilities
Wrapper around yaml_rust::yaml::Hash
, which is a type alias for
linked_hash_map::LinkedHashMap
NOTE: Highly recommend using yaml-hash
instead of this crate since it uses yaml-rust2
versus the unmaintained yaml-rust
.
Also, it provides additional functionality, including recursive get value via dotted key.
Example
use merge_yaml_hash::{MergeYamlHash, Yaml};
let mut hash = MergeYamlHash::new();
// Merge YAML data from strings
hash.merge("apple: 1\nbanana: 2");
hash.merge("cherry:\n sweet: 1\n tart: 2");
assert_eq!(
hash.to_string(),
"apple: 1\nbanana: 2\ncherry:\n sweet: 1\n tart: 2",
);
// Merge YAML data from file
// * Note that insertion order is maintained
hash.merge("tests/c.yaml"); // "banana: 3"
assert_eq!(
hash.to_string(),
"apple: 1\nbanana: 3\ncherry:\n sweet: 1\n tart: 2",
);
Changelog
- 0.1.0 (2019-10-15): Initial release
- 0.1.1-3 (2019-10-15): Minor fixes
- 0.2.0 (2019-10-18): Make
data
field public - 0.3.0 (2023-11-21): Resolve issue #1; update edition and dependencies; apply clippy suggestions; modernize
- 0.4.0 (2024-07-31): Add recommendation to use
yaml-hash
instead, which usesyaml-rust2
versus unmaintainedyaml-rust
; fix makefile; fix changelog; update dependencies
Dependencies
~185KB