Skip to content

Commit 1a5d9af

Browse files
Update parser.rs
1 parent dba5963 commit 1a5d9af

File tree

1 file changed

+3
-13
lines changed

1 file changed

+3
-13
lines changed

macros/src/parser.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,7 @@ impl Parse for FieldDef {
3333
let _: Token![:] = input.parse()?;
3434
let ty: Ident = input.parse()?;
3535

36-
let ty_str = ty.to_string();
37-
let ty_str = ty_str.as_str();
38-
if !ty_str.starts_with("u") {
39-
return Err(syn::Error::new_spanned(ty, format!("Invalid type {ty_str}, expected u{{1..128}}")));
40-
}
41-
let size = *match &ty_str[1..].parse::<u8>() {
42-
Ok(val) => val,
43-
Err(e) => return Err(syn::Error::new_spanned(ty, format!("Could not parse type size: {e}"))),
44-
};
45-
if size == 0 || size > 128 {
46-
return Err(syn::Error::new_spanned(ty, format!("Invalid size for {ty_str}, expected u{{1..128}}")));
47-
}
36+
let size = parse_bit_width(&ty)?;
4837

4938
Ok(FieldDef { name, size })
5039
}
@@ -55,7 +44,8 @@ pub fn parse_bit_width(ty: &syn::Ident) -> Result<u8> {
5544
if !ty_str.starts_with("u") {
5645
return Err(syn::Error::new_spanned(ty, format!("Invalid type {ty_str}, expected u{{1..128}}")));
5746
}
58-
let size = ty_str[1..].parse::<u8>()
47+
let size = ty_str[1..]
48+
.parse::<u8>()
5949
.map_err(|e| syn::Error::new_spanned(ty, format!("Could not parse type size: {e}")))?;
6050
if size == 0 || size > 128 {
6151
return Err(syn::Error::new_spanned(ty, format!("Invalid size for {ty_str}, expected u{{1..128}}")));

0 commit comments

Comments
 (0)