Make remap value a number

This commit is contained in:
Fabian Wolter 2025-07-15 09:45:05 +02:00
parent c279063c42
commit d9f0d80f73

View File

@ -1557,11 +1557,21 @@ fn main() {
let register = format_ident!("{}", remap_info.register.to_lowercase()); let register = format_ident!("{}", remap_info.register.to_lowercase());
let setter = format_ident!("set_{}", remap_info.field.to_lowercase()); let setter = format_ident!("set_{}", remap_info.field.to_lowercase());
let value = if remap_info.value.contains("true") || remap_info.value.contains("false") { let field_metadata = METADATA
let value = format_ident!("{}", remap_info.value); .peripherals
quote!(#value) .iter()
.filter(|p| p.name.eq_ignore_ascii_case(remap_info.peripheral))
.flat_map(|p| p.registers.as_ref().unwrap().ir.fieldsets.iter())
.filter(|f| f.name.eq_ignore_ascii_case(remap_info.register))
.flat_map(|f| f.fields.iter())
.find(|f| f.name.eq_ignore_ascii_case(remap_info.field))
.unwrap();
let value = if field_metadata.bit_size == 1 {
let bool_value = format_ident!("{}", remap_info.value > 0);
quote!(#bool_value)
} else { } else {
let value = remap_info.value.parse::<u8>().unwrap(); let value = remap_info.value;
quote!(#value.into()) quote!(#value.into())
}; };