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

Download history 210/week @ 2024-07-29 40/week @ 2024-08-05 48/week @ 2024-08-12 18/week @ 2024-08-19 40/week @ 2024-08-26 33/week @ 2024-09-02 26/week @ 2024-09-09 51/week @ 2024-09-16 92/week @ 2024-09-23 54/week @ 2024-09-30 122/week @ 2024-10-07 26/week @ 2024-10-14 83/week @ 2024-10-21 17/week @ 2024-10-28 103/week @ 2024-11-04

231 downloads per month
Used in 3 crates (2 directly)

MIT license

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 uses yaml-rust2 versus unmaintained yaml-rust; fix makefile; fix changelog; update dependencies

Dependencies

~185KB