diff --git a/src/generator.rs b/src/generator.rs index d5deb1d..4e4cfdd 100644 --- a/src/generator.rs +++ b/src/generator.rs @@ -129,7 +129,8 @@ impl CodeGen for Module { let child_mods = self .elements_other .into_iter() - .map(|e| e.generate_register_interface()); + .map(|e| e.generate_register_interface()) + .collect::, _>>()?; for child in child_mods { out.extend(child); } @@ -172,15 +173,11 @@ impl CodeGen for Block { out }; - let child_mods = { - let mut out = TokenStream::new(); - for child_mod in self.elements.into_iter() { - let module = child_mod.generate_register_interface(); - out.extend(module); - } - - out - }; + let code_children = self + .elements + .into_iter() + .map(|e| e.generate_register_interface()) + .collect::, _>>()?; Ok(quote! { pub mod #snake_case_name { @@ -190,7 +187,7 @@ impl CodeGen for Block { use super::RegisterInterface; - #child_mods + #(#code_children)* const OFFSET: usize = #addr; //pub(crate) const SIZE: usize = 0x4000;