Skip to content

Commit a92a0a1

Browse files
committed
more cleanups
1 parent d03b484 commit a92a0a1

File tree

2 files changed

+32
-50
lines changed

2 files changed

+32
-50
lines changed

src/generate/peripheral.rs

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ use proc_macro2::{Ident, Punct, Spacing, Span, TokenStream};
1010
use quote::{quote, ToTokens};
1111
use syn::{parse_str, Token};
1212

13-
use crate::util::{
14-
self, handle_cluster_error, handle_reg_error, unsuffixed, Config, FullName, ToSanitizedCase,
15-
BITS_PER_BYTE,
16-
};
13+
use crate::util::{self, unsuffixed, Config, FullName, ToSanitizedCase, BITS_PER_BYTE};
1714
use anyhow::{anyhow, bail, Context, Result};
1815

1916
use crate::generate::register;
@@ -570,26 +567,24 @@ fn expand(ercs: &[RegisterCluster], config: &Config) -> Result<Vec<RegisterBlock
570567
debug!("Expanding registers or clusters into Register Block Fields");
571568
for erc in ercs {
572569
match &erc {
573-
RegisterCluster::Register(register) => match expand_register(register, config) {
574-
Ok(expanded_reg) => {
575-
trace!("Register: {}", register.name);
576-
ercs_expanded.extend(expanded_reg);
577-
}
578-
Err(e) => {
579-
let res = Err(e);
580-
return handle_reg_error("Error expanding register", register, res);
581-
}
582-
},
583-
RegisterCluster::Cluster(cluster) => match expand_cluster(cluster, config) {
584-
Ok(expanded_cluster) => {
585-
trace!("Cluster: {}", cluster.name);
586-
ercs_expanded.extend(expanded_cluster);
587-
}
588-
Err(e) => {
589-
let res = Err(e);
590-
return handle_cluster_error("Error expanding register cluster", cluster, res);
591-
}
592-
},
570+
RegisterCluster::Register(register) => {
571+
let reg_name = &register.name;
572+
let expanded_reg = expand_register(register, config).with_context(|| {
573+
let descrip = register.description.as_deref().unwrap_or("No description");
574+
format!("Error expanding register\nName: {reg_name}\nDescription: {descrip}")
575+
})?;
576+
trace!("Register: {reg_name}");
577+
ercs_expanded.extend(expanded_reg);
578+
}
579+
RegisterCluster::Cluster(cluster) => {
580+
let cluster_name = &cluster.name;
581+
let expanded_cluster = expand_cluster(cluster, config).with_context(|| {
582+
let descrip = cluster.description.as_deref().unwrap_or("No description");
583+
format!("Error expanding cluster\nName: {cluster_name}\nDescription: {descrip}")
584+
})?;
585+
trace!("Cluster: {cluster_name}");
586+
ercs_expanded.extend(expanded_cluster);
587+
}
593588
};
594589
}
595590

@@ -880,14 +875,17 @@ fn render_ercs(
880875
if let Some(dpath) = dpath {
881876
rpath = derive_register(reg, &dpath, path, index)?;
882877
}
883-
let rpath = rpath.unwrap_or_else(|| path.new_register(&reg.name));
884-
match register::render(reg, &rpath, index, config) {
885-
Ok(rendered_reg) => mod_items.extend(rendered_reg),
886-
Err(e) => {
887-
let res: Result<TokenStream> = Err(e);
888-
return handle_reg_error("Error rendering register", reg, res);
889-
}
890-
};
878+
let reg_name = &reg.name;
879+
let rpath = rpath.unwrap_or_else(|| path.new_register(reg_name));
880+
881+
let rendered_reg =
882+
register::render(reg, &rpath, index, config).with_context(|| {
883+
let descrip = reg.description.as_deref().unwrap_or("No description");
884+
format!(
885+
"Error rendering register\nName: {reg_name}\nDescription: {descrip}"
886+
)
887+
})?;
888+
mod_items.extend(rendered_reg)
891889
}
892890
}
893891
}

src/util.rs

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::borrow::Cow;
22

3-
use crate::svd::{Access, Cluster, Device, Field, Register, RegisterInfo, RegisterProperties};
3+
use crate::svd::{Access, Device, Field, RegisterInfo, RegisterProperties};
44
use inflections::Inflect;
55
use proc_macro2::{Ident, Span, TokenStream};
66
use quote::quote;
@@ -9,7 +9,7 @@ use std::path::{Path, PathBuf};
99
use svd_rs::{MaybeArray, PeripheralInfo};
1010
use syn::parse_str;
1111

12-
use anyhow::{anyhow, bail, Context, Result};
12+
use anyhow::{anyhow, bail, Result};
1313

1414
pub const BITS_PER_BYTE: u32 = 8;
1515

@@ -424,22 +424,6 @@ pub fn build_rs() -> TokenStream {
424424
}
425425
}
426426

427-
pub fn handle_reg_error<T>(msg: &str, reg: &Register, res: Result<T>) -> Result<T> {
428-
let reg_name = &reg.name;
429-
let descrip = reg.description.as_deref().unwrap_or("No description");
430-
handle_erc_error(msg, reg_name, descrip, res)
431-
}
432-
433-
pub fn handle_cluster_error<T>(msg: &str, cluster: &Cluster, res: Result<T>) -> Result<T> {
434-
let cluster_name = &cluster.name;
435-
let descrip = cluster.description.as_deref().unwrap_or("No description");
436-
handle_erc_error(msg, cluster_name, descrip, res)
437-
}
438-
439-
fn handle_erc_error<T>(msg: &str, name: &str, descrip: &str, res: Result<T>) -> Result<T> {
440-
res.with_context(|| format!("{msg}\nName: {name}\nDescription: {descrip}"))
441-
}
442-
443427
pub fn get_register_sizes(d: &Device) -> Vec<u32> {
444428
let mut reg_sizes = HashSet::new();
445429
for p in &d.peripherals {

0 commit comments

Comments
 (0)