Struct merge_yaml_hash::MergeYamlHash
source · pub struct MergeYamlHash {
pub data: Hash,
}
Expand description
YAML Hash with merge/update capabilities
Wrapper around yaml_rust::yaml::Hash
, which is a type alias for linked_hash_map::LinkedHashMap
Fields§
§data: Hash
Implementations§
source§impl MergeYamlHash
impl MergeYamlHash
sourcepub fn new() -> MergeYamlHash
pub fn new() -> MergeYamlHash
Create a new/empty hash
use merge_yaml_hash::MergeYamlHash;
let mut hash = MergeYamlHash::new();
assert_eq!(format!("{:?}", hash), "MergeYamlHash { data: {} }");
assert_eq!(format!("{:#?}", hash), "MergeYamlHash {\n data: {},\n}");
sourcepub fn merge(&mut self, file_or_str: &str)
pub fn merge(&mut self, file_or_str: &str)
Merge YAML file or string
use merge_yaml_hash::MergeYamlHash;
let mut hash = MergeYamlHash::new();
hash.merge("tests/a.yaml");
assert_eq!(hash.to_string(), "apple: 1\nbanana: 2");
use merge_yaml_hash::MergeYamlHash;
let mut hash = MergeYamlHash::new();
let yaml = "apple: 1\nbanana: 2".to_string();
hash.merge(&yaml);
assert_eq!(hash.to_string(), yaml);
sourcepub fn merge_vec(&mut self, files_or_strings: Vec<String>)
pub fn merge_vec(&mut self, files_or_strings: Vec<String>)
Merge multiple YAML files or strings in order
No conflicts:
use merge_yaml_hash::MergeYamlHash;
let mut hash = MergeYamlHash::new();
let yaml1 = "apple: 1\nbanana: 2".to_string();
let yaml2 = "cherry: 3".to_string();
let result = "apple: 1\nbanana: 2\ncherry: 3";
hash.merge_vec(vec![yaml1, yaml2]);
assert_eq!(hash.to_string(), result);
With conflict; value in yaml2.banana
simply overrides the value in
yaml1.banana
:
use merge_yaml_hash::MergeYamlHash;
let mut hash = MergeYamlHash::new();
let yaml1 = "apple: 1\nbanana: 2".to_string();
let yaml2 = "banana: 3".to_string();
let result = "apple: 1\nbanana: 3";
hash.merge_vec(vec![yaml1, yaml2]);
assert_eq!(hash.to_string(), result);
Trait Implementations§
source§impl Debug for MergeYamlHash
impl Debug for MergeYamlHash
source§impl Default for MergeYamlHash
impl Default for MergeYamlHash
source§fn default() -> MergeYamlHash
fn default() -> MergeYamlHash
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for MergeYamlHash
impl Send for MergeYamlHash
impl Sync for MergeYamlHash
impl Unpin for MergeYamlHash
impl UnwindSafe for MergeYamlHash
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more