forge_doc/
helpers.rs
1use toml::{value::Table, Value};
2
3pub(crate) fn merge_toml_table(table: &mut Table, override_table: Table) {
5 for (key, override_value) in override_table {
6 match table.get_mut(&key) {
7 Some(Value::Table(inner_table)) => {
8 if let Value::Table(inner_override) = override_value {
10 merge_toml_table(inner_table, inner_override);
11 }
12 }
13 Some(Value::Array(inner_array)) => {
14 if let Value::Array(inner_override) = override_value {
16 for entry in inner_override {
17 if !inner_array.contains(&entry) {
18 inner_array.push(entry);
19 }
20 }
21 }
22 }
23 _ => {
24 table.insert(key, override_value);
25 }
26 };
27 }
28}