diff --git a/CHANGELOG-rust.md b/CHANGELOG-rust.md index c27a2ea..90263f6 100644 --- a/CHANGELOG-rust.md +++ b/CHANGELOG-rust.md @@ -5,6 +5,8 @@ This changelog tracks the Rust `svdtools` project. See ## [Unreleased] +* Sugar for simple `_split` and `_merge` + ## [v0.3.18] 2024-08-10 * Replace `yaml-rust` with `yaml-rust2`. Check for duplicate keys and other YAML parse errors diff --git a/README.md b/README.md index 8c187d8..562cc29 100644 --- a/README.md +++ b/README.md @@ -255,7 +255,6 @@ _rebase: ARRAY*: name: NEW_NAME%s _modify: - FIELD: [MINIMUM, MAXIMUM] FIELD: description: NEWDESC OTHER_ARRAY*: {} diff --git a/src/patch/register.rs b/src/patch/register.rs index 21dfd3e..a288348 100644 --- a/src/patch/register.rs +++ b/src/patch/register.rs @@ -203,6 +203,10 @@ impl RegisterExt for Register { .with_context(|| format!("Merging fields matched to `{fspec}`"))?; } } + Some(Yaml::String(fspec)) => { + self.merge_fields(fspec, None, &rpath) + .with_context(|| format!("Merging fields matched to `{fspec}`"))?; + } _ => {} } @@ -222,6 +226,10 @@ impl RegisterExt for Register { .with_context(|| format!("Splitting fields matched to `{fspec}`"))?; } } + Some(Yaml::String(fspec)) => { + self.split_fields(fspec, &Hash::new(), &rpath) + .with_context(|| format!("Splitting fields matched to `{fspec}`"))?; + } _ => {} }