Skip to content

Commit

Permalink
Merge pull request #53 from decaday/feat/add-delete-fields
Browse files Browse the repository at this point in the history
Add `DeleteFields` transform
  • Loading branch information
Dirbaio authored Jan 21, 2025
2 parents 47bb90c + 7ad1eab commit 9342cf6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/transform/delete_fields.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
use serde::{Deserialize, Serialize};

use super::common::*;
use crate::ir::*;

#[derive(Debug, Serialize, Deserialize)]
pub struct DeleteFields {
pub fieldset: RegexSet,
pub from: RegexSet,
}

impl DeleteFields {
pub fn run(&self, ir: &mut IR) -> anyhow::Result<()> {
for id in match_all(ir.fieldsets.keys().cloned(), &self.fieldset) {
let fs = ir.fieldsets.get_mut(&id).unwrap();
fs.fields.retain(|f| !self.from.is_match(&f.name));
}
Ok(())
}
}
1 change: 1 addition & 0 deletions src/transform/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ transforms!(
delete_enums_with_variants::DeleteEnumsWithVariants,
delete_enums_used_in::DeleteEnumsUsedIn,
delete_useless_enums::DeleteUselessEnums,
delete_fields::DeleteFields,
delete_fieldsets::DeleteFieldsets,
delete_peripherals::DeletePeripherals,
delete_registers::DeleteRegisters,
Expand Down

0 comments on commit 9342cf6

Please sign in to comment.