@@ -37,14 +37,8 @@ use crate::{
37
37
elf:: ElfFirmwareImage ,
38
38
error:: { Error , MissingPartition , MissingPartitionTable } ,
39
39
flasher:: {
40
- parse_partition_table,
41
- FlashData ,
42
- FlashFrequency ,
43
- FlashMode ,
44
- FlashSettings ,
45
- FlashSize ,
46
- Flasher ,
47
- ProgressCallbacks ,
40
+ parse_partition_table, FlashData , FlashFrequency , FlashMode , FlashSettings , FlashSize ,
41
+ Flasher , ProgressCallbacks ,
48
42
} ,
49
43
targets:: { Chip , XtalFrequency } ,
50
44
} ;
@@ -300,6 +294,7 @@ pub struct ChecksumMd5Args {
300
294
301
295
/// Parses an integer, in base-10 or hexadecimal format, into a [u32]
302
296
pub fn parse_u32 ( input : & str ) -> Result < u32 , ParseIntError > {
297
+ let input: & str = & input. replace ( '_' , "" ) ;
303
298
let ( s, radix) = if input. len ( ) > 2 && matches ! ( & input[ 0 ..2 ] , "0x" | "0X" ) {
304
299
( & input[ 2 ..] , 16 )
305
300
} else {
@@ -892,6 +887,9 @@ mod test {
892
887
// Decimal
893
888
assert_eq ! ( parse_u32( "1234" ) , Ok ( 1234 ) ) ;
894
889
assert_eq ! ( parse_u32( "0" ) , Ok ( 0 ) ) ;
890
+ // Underscores
891
+ assert_eq ! ( parse_u32( "12_34" ) , Ok ( 1234 ) ) ;
892
+ assert_eq ! ( parse_u32( "0X12_34" ) , Ok ( 0x1234 ) ) ;
895
893
// Errors
896
894
assert ! ( parse_u32( "" ) . is_err( ) ) ;
897
895
assert ! ( parse_u32( "0x" ) . is_err( ) ) ;
0 commit comments