rcc mux: update metapac
This commit is contained in:
		@@ -5,7 +5,7 @@ use std::{env, fs};
 | 
			
		||||
 | 
			
		||||
use proc_macro2::{Ident, TokenStream};
 | 
			
		||||
use quote::{format_ident, quote};
 | 
			
		||||
use stm32_metapac::metadata::ir::{BlockItemInner, Enum};
 | 
			
		||||
use stm32_metapac::metadata::ir::{BlockItemInner, Enum, FieldSet};
 | 
			
		||||
use stm32_metapac::metadata::{MemoryRegionKind, PeripheralRccRegister, METADATA};
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
@@ -400,29 +400,24 @@ fn main() {
 | 
			
		||||
            .ir;
 | 
			
		||||
 | 
			
		||||
        let rcc_blocks = rcc_registers.blocks.iter().find(|b| b.name == "Rcc").unwrap().items;
 | 
			
		||||
        let rcc_fieldsets: HashMap<&str, &FieldSet> = rcc_registers.fieldsets.iter().map(|f| (f.name, f)).collect();
 | 
			
		||||
        let rcc_enums: HashMap<&str, &Enum> = rcc_registers.enums.iter().map(|e| (e.name, e)).collect();
 | 
			
		||||
 | 
			
		||||
        let rcc_block_item_map: HashMap<&str, &str> = rcc_blocks
 | 
			
		||||
        rcc_blocks
 | 
			
		||||
            .iter()
 | 
			
		||||
            .filter_map(|b| match &b.inner {
 | 
			
		||||
                BlockItemInner::Register(register) => register.fieldset.map(|f| (f, b.name)),
 | 
			
		||||
                BlockItemInner::Register(register) => register.fieldset.map(|f| (b.name, f)),
 | 
			
		||||
                _ => None,
 | 
			
		||||
            })
 | 
			
		||||
            .collect();
 | 
			
		||||
 | 
			
		||||
        let rcc_enum_map: HashMap<&str, &Enum> = rcc_registers.enums.iter().map(|e| (e.name, e)).collect();
 | 
			
		||||
 | 
			
		||||
        rcc_registers
 | 
			
		||||
            .fieldsets
 | 
			
		||||
            .iter()
 | 
			
		||||
            .filter_map(|f| {
 | 
			
		||||
                rcc_block_item_map.get(f.name).map(|b| {
 | 
			
		||||
            .filter_map(|(b, f)| {
 | 
			
		||||
                rcc_fieldsets.get(f).map(|f| {
 | 
			
		||||
                    (
 | 
			
		||||
                        *b,
 | 
			
		||||
                        b,
 | 
			
		||||
                        f.fields
 | 
			
		||||
                            .iter()
 | 
			
		||||
                            .filter_map(|f| {
 | 
			
		||||
                                let enumm = f.enumm?;
 | 
			
		||||
                                let enumm = rcc_enum_map.get(enumm)?;
 | 
			
		||||
                                let enumm = rcc_enums.get(enumm)?;
 | 
			
		||||
 | 
			
		||||
                                Some((f.name, *enumm))
 | 
			
		||||
                            })
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user