diff --git a/src/generator.rs b/src/generator.rs index d9bc458..109b9a1 100644 --- a/src/generator.rs +++ b/src/generator.rs @@ -228,7 +228,12 @@ impl CodeGen for Register { ) = codegen_register::reg_type_def(&self, &upper_camel_name)?; let code_reg_def: proc_macro2::TokenStream = - codegen_registerspec_impl::gen_registerspec_impl(reg_name.clone(), self.modf, type_t, type_ux); + codegen_registerspec_impl::gen_registerspec_impl( + reg_name.clone(), + self.modf, + type_t, + type_ux, + ); Ok(quote! { pub mod #snake_case_name { diff --git a/src/generator/codegen_register.rs b/src/generator/codegen_register.rs index 243f408..c54574d 100644 --- a/src/generator/codegen_register.rs +++ b/src/generator/codegen_register.rs @@ -3,7 +3,7 @@ use heck::{ToShoutySnekCase, ToSnakeCase}; use itertools::Itertools; -use proc_macro2::{Ident, TokenStream}; +use proc_macro2::{Ident, Literal, TokenStream}; use quote::quote; use crate::types::{DataType, Field, MultipleParams, Register}; @@ -298,12 +298,12 @@ fn generate_multiple_field( multiple_params: &MultipleParams, ) -> (TokenStream, TokenStream, TokenStream) { let num_multiple = multiple_params.multiple; - let id_num_multiple = util::parse_to_ident(&num_multiple.to_string()).unwrap(); + let id_num_multiple = util::parse_to_literal(&num_multiple.to_string()).unwrap(); let id_field_type = single_field_type.to_rust_type_token(); let masks: Vec<_> = (0..multiple_params.multiple) .map(|x| x * multiple_params.offset) .map(|offset| single_mask_val << offset) - .map(|mask| util::parse_to_ident(&format!("0x{mask:x}")).unwrap()) + .map(|mask| util::parse_to_literal(&format!("0x{mask:x}")).unwrap()) .collect(); debug_assert_eq!(masks.len(), num_multiple.try_into().unwrap()); let code_mask = quote! { @@ -331,7 +331,7 @@ fn generate_multiple_bool_field( mask_name: Ident, base_type: Ident, snake_case_name: Ident, - masks: Vec, + masks: Vec, ) -> (TokenStream, TokenStream) { let num_multiple = masks.len(); let elem_getter = masks.iter().enumerate().map(|(i, _mask)| { @@ -372,7 +372,7 @@ fn generate_multiple_ux_field( base_type: Ident, snake_case_name: Ident, single_field_type: RustUxTypes, - masks: Vec, + masks: Vec, ) -> (TokenStream, TokenStream) { let field_type = single_field_type.to_rust_type_token(); let num_multiple = masks.len();