fix: fix mask type for multiple field register

This commit is contained in:
Wataru Otsubo 2025-02-02 03:16:40 +09:00
parent dbb124ec76
commit 39a793462a

View file

@ -415,10 +415,6 @@ fn generate_multiple_field(
) -> (TokenStream, TokenStream, TokenStream) {
let num_multiple = multiple_params.multiple;
let id_num_multiple = util::parse_to_literal(&num_multiple.to_string()).unwrap();
let id_field_type = match single_field_type {
FieldType::RustType(ref single_field_type) => single_field_type.to_rust_type_token(),
FieldType::CustomValue(_) => todo!("HERE NEXT"),
};
let masks: Vec<_> = (0..multiple_params.multiple)
.map(|x| x * multiple_params.offset)
.map(|offset| single_mask_val << offset)
@ -426,7 +422,7 @@ fn generate_multiple_field(
.collect();
debug_assert_eq!(masks.len(), num_multiple.try_into().unwrap());
let code_mask = quote! {
const #mask_name: [#id_field_type; #id_num_multiple] = [#(#masks),*];
const #mask_name: [#base_type; #id_num_multiple] = [#(#masks),*];
};
let (code_getter, code_setter) = match single_field_type {