diff --git a/stm32-metapac-gen/src/data.rs b/stm32-metapac-gen/src/data.rs index dc90da7..74d6d2e 100644 --- a/stm32-metapac-gen/src/data.rs +++ b/stm32-metapac-gen/src/data.rs @@ -12,11 +12,11 @@ pub mod ir { impl IR { pub fn from_chiptool(ir: chiptool::ir::IR) -> Self { - let blocks: Vec = ir + let mut blocks: Vec = ir .blocks .iter() .map(|(name, block)| { - let items = block + let mut items: Vec<_> = block .items .iter() .map(|item| BlockItem { @@ -54,6 +54,8 @@ pub mod ir { }) .collect(); + items.sort_by_key(|i| i.name.clone()); + Block { name: name.to_string(), items: items, @@ -62,7 +64,10 @@ pub mod ir { } }) .collect(); - let fieldsets: Vec
= ir + + blocks.sort_by_key(|b| b.name.clone()); + + let mut fieldsets: Vec
= ir .fieldsets .iter() .map(|(name, fieldset)| { @@ -99,7 +104,10 @@ pub mod ir { } }) .collect(); - let enums: Vec = ir + + fieldsets.sort_by_key(|f| f.name.clone()); + + let mut enums: Vec = ir .enums .iter() .map(|(name, enumm)| { @@ -122,6 +130,8 @@ pub mod ir { }) .collect(); + enums.sort_by_key(|e| e.name.clone()); + Self { blocks, fieldsets,