File tree Expand file tree Collapse file tree 10 files changed +133
-0
lines changed Expand file tree Collapse file tree 10 files changed +133
-0
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
8
8
## [ Unreleased]
9
9
10
+ - Added implementations of ` From<Type> ` for ` TypeBuilder ` 's
11
+
10
12
## [ v0.10.1] - 2021-04-17
11
13
12
14
- Added ` DeriveFrom ` implementation for ` FieldInfo `
Original file line number Diff line number Diff line change @@ -52,6 +52,20 @@ pub struct ClusterInfoBuilder {
52
52
children : Option < Vec < RegisterCluster > > ,
53
53
}
54
54
55
+ impl From < ClusterInfo > for ClusterInfoBuilder {
56
+ fn from ( c : ClusterInfo ) -> Self {
57
+ Self {
58
+ name : Some ( c. name ) ,
59
+ address_offset : Some ( c. address_offset ) ,
60
+ derived_from : c. derived_from ,
61
+ description : c. description ,
62
+ header_struct_name : c. header_struct_name ,
63
+ default_register_properties : c. default_register_properties ,
64
+ children : Some ( c. children ) ,
65
+ }
66
+ }
67
+ }
68
+
55
69
impl ClusterInfoBuilder {
56
70
pub fn name ( mut self , value : String ) -> Self {
57
71
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -46,6 +46,20 @@ pub struct CpuBuilder {
46
46
has_vendor_systick : Option < bool > ,
47
47
}
48
48
49
+ impl From < Cpu > for CpuBuilder {
50
+ fn from ( c : Cpu ) -> Self {
51
+ Self {
52
+ name : Some ( c. name ) ,
53
+ revision : Some ( c. revision ) ,
54
+ endian : Some ( c. endian ) ,
55
+ mpu_present : Some ( c. mpu_present ) ,
56
+ fpu_present : Some ( c. fpu_present ) ,
57
+ nvic_priority_bits : Some ( c. nvic_priority_bits ) ,
58
+ has_vendor_systick : Some ( c. has_vendor_systick ) ,
59
+ }
60
+ }
61
+ }
62
+
49
63
impl CpuBuilder {
50
64
pub fn name ( mut self , value : String ) -> Self {
51
65
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -69,6 +69,22 @@ pub struct DeviceBuilder {
69
69
default_register_properties : RegisterProperties ,
70
70
}
71
71
72
+ impl From < Device > for DeviceBuilder {
73
+ fn from ( d : Device ) -> Self {
74
+ Self {
75
+ name : Some ( d. name ) ,
76
+ schema_version : d. schema_version ,
77
+ version : d. version ,
78
+ description : d. description ,
79
+ address_unit_bits : d. address_unit_bits ,
80
+ width : d. width ,
81
+ cpu : d. cpu ,
82
+ peripherals : Some ( d. peripherals ) ,
83
+ default_register_properties : d. default_register_properties ,
84
+ }
85
+ }
86
+ }
87
+
72
88
impl DeviceBuilder {
73
89
pub fn name ( mut self , value : String ) -> Self {
74
90
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -32,6 +32,16 @@ pub struct DimElementBuilder {
32
32
dim_index : Option < Vec < String > > ,
33
33
}
34
34
35
+ impl From < DimElement > for DimElementBuilder {
36
+ fn from ( d : DimElement ) -> Self {
37
+ Self {
38
+ dim : Some ( d. dim ) ,
39
+ dim_increment : Some ( d. dim_increment ) ,
40
+ dim_index : d. dim_index ,
41
+ }
42
+ }
43
+ }
44
+
35
45
impl DimElementBuilder {
36
46
pub fn dim ( mut self , value : u32 ) -> Self {
37
47
self . dim = Some ( value) ;
Original file line number Diff line number Diff line change @@ -48,6 +48,17 @@ pub struct EnumeratedValueBuilder {
48
48
is_default : Option < bool > ,
49
49
}
50
50
51
+ impl From < EnumeratedValue > for EnumeratedValueBuilder {
52
+ fn from ( e : EnumeratedValue ) -> Self {
53
+ Self {
54
+ name : Some ( e. name ) ,
55
+ description : e. description ,
56
+ value : e. value ,
57
+ is_default : e. is_default ,
58
+ }
59
+ }
60
+ }
61
+
51
62
impl EnumeratedValueBuilder {
52
63
pub fn name ( mut self , value : String ) -> Self {
53
64
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -47,6 +47,17 @@ pub struct EnumeratedValuesBuilder {
47
47
values : Option < Vec < EnumeratedValue > > ,
48
48
}
49
49
50
+ impl From < EnumeratedValues > for EnumeratedValuesBuilder {
51
+ fn from ( e : EnumeratedValues ) -> Self {
52
+ Self {
53
+ name : e. name ,
54
+ usage : e. usage ,
55
+ derived_from : e. derived_from ,
56
+ values : Some ( e. values ) ,
57
+ }
58
+ }
59
+ }
60
+
50
61
impl EnumeratedValuesBuilder {
51
62
pub fn name ( mut self , value : Option < String > ) -> Self {
52
63
self . name = value;
Original file line number Diff line number Diff line change @@ -67,6 +67,21 @@ pub struct FieldInfoBuilder {
67
67
modified_write_values : Option < ModifiedWriteValues > ,
68
68
}
69
69
70
+ impl From < FieldInfo > for FieldInfoBuilder {
71
+ fn from ( f : FieldInfo ) -> Self {
72
+ Self {
73
+ name : Some ( f. name ) ,
74
+ bit_range : Some ( f. bit_range ) ,
75
+ derived_from : f. derived_from ,
76
+ description : f. description ,
77
+ access : f. access ,
78
+ enumerated_values : Some ( f. enumerated_values ) ,
79
+ write_constraint : f. write_constraint ,
80
+ modified_write_values : f. modified_write_values ,
81
+ }
82
+ }
83
+ }
84
+
70
85
impl FieldInfoBuilder {
71
86
pub fn name ( mut self , value : String ) -> Self {
72
87
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -83,6 +83,24 @@ pub struct PeripheralBuilder {
83
83
derived_from : Option < String > ,
84
84
}
85
85
86
+ impl From < Peripheral > for PeripheralBuilder {
87
+ fn from ( p : Peripheral ) -> Self {
88
+ Self {
89
+ name : Some ( p. name ) ,
90
+ base_address : Some ( p. base_address ) ,
91
+ version : p. version ,
92
+ display_name : p. display_name ,
93
+ group_name : p. group_name ,
94
+ description : p. description ,
95
+ address_block : p. address_block ,
96
+ interrupt : p. interrupt ,
97
+ default_register_properties : p. default_register_properties ,
98
+ registers : p. registers ,
99
+ derived_from : p. derived_from ,
100
+ }
101
+ }
102
+ }
103
+
86
104
impl PeripheralBuilder {
87
105
pub fn name ( mut self , value : String ) -> Self {
88
106
self . name = Some ( value) ;
Original file line number Diff line number Diff line change @@ -93,6 +93,28 @@ pub struct RegisterInfoBuilder {
93
93
modified_write_values : Option < ModifiedWriteValues > ,
94
94
}
95
95
96
+ impl From < RegisterInfo > for RegisterInfoBuilder {
97
+ fn from ( r : RegisterInfo ) -> Self {
98
+ Self {
99
+ name : Some ( r. name ) ,
100
+ address_offset : Some ( r. address_offset ) ,
101
+ alternate_group : r. alternate_group ,
102
+ alternate_register : r. alternate_register ,
103
+ derived_from : r. derived_from ,
104
+ description : r. description ,
105
+ properties : RegisterProperties {
106
+ size : r. size ,
107
+ access : r. access ,
108
+ reset_value : r. reset_value ,
109
+ reset_mask : r. reset_mask ,
110
+ } ,
111
+ fields : r. fields ,
112
+ write_constraint : r. write_constraint ,
113
+ modified_write_values : r. modified_write_values ,
114
+ }
115
+ }
116
+ }
117
+
96
118
impl RegisterInfoBuilder {
97
119
pub fn name ( mut self , value : String ) -> Self {
98
120
self . name = Some ( value) ;
You can’t perform that action at this time.
0 commit comments