1
1
use std:: borrow:: Cow ;
2
2
use std:: cmp:: Ordering ;
3
3
4
- use either:: Either ;
5
4
use quote:: { ToTokens , Tokens } ;
6
- use crate :: svd:: { Cluster , ClusterInfo , Defaults , Peripheral , Register } ;
5
+ use svd:: { Cluster , ClusterInfo , Defaults , Peripheral , Register , RegisterCluster } ;
7
6
use syn:: { self , Ident } ;
8
7
use log:: warn;
9
8
@@ -356,7 +355,7 @@ impl FieldRegions {
356
355
}
357
356
358
357
fn register_or_cluster_block (
359
- ercs : & [ Either < Register , Cluster > ] ,
358
+ ercs : & [ RegisterCluster ] ,
360
359
defs : & Defaults ,
361
360
name : Option < & str > ,
362
361
nightly : bool ,
@@ -369,7 +368,7 @@ fn register_or_cluster_block(
369
368
}
370
369
371
370
fn register_or_cluster_block_stable (
372
- ercs : & [ Either < Register , Cluster > ] ,
371
+ ercs : & [ RegisterCluster ] ,
373
372
defs : & Defaults ,
374
373
name : Option < & str > ,
375
374
) -> Result < Tokens > {
@@ -433,7 +432,7 @@ fn register_or_cluster_block_stable(
433
432
}
434
433
435
434
fn register_or_cluster_block_nightly (
436
- ercs : & [ Either < Register , Cluster > ] ,
435
+ ercs : & [ RegisterCluster ] ,
437
436
defs : & Defaults ,
438
437
name : Option < & str > ,
439
438
) -> Result < Tokens > {
@@ -552,16 +551,16 @@ fn register_or_cluster_block_nightly(
552
551
/// Expand a list of parsed `Register`s or `Cluster`s, and render them to
553
552
/// `RegisterBlockField`s containing `Field`s.
554
553
fn expand (
555
- ercs : & [ Either < Register , Cluster > ] ,
554
+ ercs : & [ RegisterCluster ] ,
556
555
defs : & Defaults ,
557
556
name : Option < & str > ,
558
557
) -> Result < Vec < RegisterBlockField > > {
559
558
let mut ercs_expanded = vec ! [ ] ;
560
559
561
560
for erc in ercs {
562
561
ercs_expanded. extend ( match erc {
563
- Either :: Left ( ref register) => expand_register ( register, defs, name) ?,
564
- Either :: Right ( ref cluster) => expand_cluster ( cluster, defs) ?,
562
+ RegisterCluster :: Register ( ref register) => expand_register ( register, defs, name) ?,
563
+ RegisterCluster :: Cluster ( ref cluster) => expand_cluster ( cluster, defs) ?,
565
564
} ) ;
566
565
}
567
566
@@ -577,15 +576,15 @@ fn cluster_size_in_bits(info: &ClusterInfo, defs: &Defaults) -> Result<u32> {
577
576
578
577
for c in & info. children {
579
578
let end = match * c {
580
- Either :: Left ( ref reg) => {
579
+ RegisterCluster :: Register ( ref reg) => {
581
580
let reg_size: u32 = expand_register ( reg, defs, None ) ?
582
581
. iter ( )
583
582
. map ( |rbf| rbf. size )
584
583
. sum ( ) ;
585
584
586
585
( reg. address_offset * BITS_PER_BYTE ) + reg_size
587
586
}
588
- Either :: Right ( ref clust) => {
587
+ RegisterCluster :: Cluster ( ref clust) => {
589
588
( clust. address_offset * BITS_PER_BYTE ) + cluster_size_in_bits ( clust, defs) ?
590
589
}
591
590
} ;
@@ -665,7 +664,7 @@ fn expand_register(
665
664
match * register {
666
665
Register :: Single ( ref info) => register_expanded. push ( RegisterBlockField {
667
666
field : convert_svd_register ( register, name) ,
668
- description : info. description . clone ( ) ,
667
+ description : info. description . clone ( ) . unwrap ( ) ,
669
668
offset : info. address_offset ,
670
669
size : register_size,
671
670
} ) ,
@@ -685,15 +684,15 @@ fn expand_register(
685
684
if array_convertible {
686
685
register_expanded. push ( RegisterBlockField {
687
686
field : convert_svd_register ( & register, name) ,
688
- description : info. description . clone ( ) ,
687
+ description : info. description . clone ( ) . unwrap ( ) ,
689
688
offset : info. address_offset ,
690
689
size : register_size * array_info. dim ,
691
690
} ) ;
692
691
} else {
693
692
for ( field_num, field) in expand_svd_register ( register, name) . iter ( ) . enumerate ( ) {
694
693
register_expanded. push ( RegisterBlockField {
695
694
field : field. clone ( ) ,
696
- description : info. description . clone ( ) ,
695
+ description : info. description . clone ( ) . unwrap ( ) ,
697
696
offset : info. address_offset + field_num as u32 * array_info. dim_increment ,
698
697
size : register_size,
699
698
} ) ;
0 commit comments