@@ -88,17 +88,15 @@ impl EnumeratedValueBuilder {
88
88
}
89
89
/// Validate and build a [`EnumeratedValue`].
90
90
pub fn build ( self , lvl : ValidateLevel ) -> Result < EnumeratedValue , SvdError > {
91
- let mut ev = EnumeratedValue {
91
+ let ev = EnumeratedValue {
92
92
name : self
93
93
. name
94
94
. ok_or_else ( || BuildError :: Uninitialized ( "name" . to_string ( ) ) ) ?,
95
95
description : self . description . empty_to_none ( ) ,
96
96
value : self . value ,
97
97
is_default : self . is_default ,
98
98
} ;
99
- if !lvl. is_disabled ( ) {
100
- ev. validate ( lvl) ?;
101
- }
99
+ ev. validate ( lvl) ?;
102
100
Ok ( ev)
103
101
}
104
102
}
@@ -130,23 +128,23 @@ impl EnumeratedValue {
130
128
if builder. is_default . is_some ( ) {
131
129
self . is_default = builder. is_default ;
132
130
}
131
+ self . validate ( lvl)
132
+ }
133
+ /// Validate the [`EnumeratedValue`].
134
+ pub fn validate ( & self , lvl : ValidateLevel ) -> Result < ( ) , SvdError > {
133
135
if !lvl. is_disabled ( ) {
134
- self . validate ( lvl)
136
+ if lvl. is_strict ( ) {
137
+ super :: check_name ( & self . name , "name" ) ?;
138
+ }
139
+ match ( self . value . is_some ( ) , self . is_default ( ) ) {
140
+ ( false , false ) => Err ( Error :: AbsentValue . into ( ) ) ,
141
+ ( true , true ) if lvl. is_strict ( ) => Err ( Error :: ValueAndDefault ( self . value ) . into ( ) ) ,
142
+ _ => Ok ( ( ) ) ,
143
+ }
135
144
} else {
136
145
Ok ( ( ) )
137
146
}
138
147
}
139
- /// Validate the [`EnumeratedValue`].
140
- pub fn validate ( & mut self , lvl : ValidateLevel ) -> Result < ( ) , SvdError > {
141
- if lvl. is_strict ( ) {
142
- super :: check_name ( & self . name , "name" ) ?;
143
- }
144
- match ( self . value . is_some ( ) , self . is_default ( ) ) {
145
- ( false , false ) => Err ( Error :: AbsentValue . into ( ) ) ,
146
- ( true , true ) if lvl. is_strict ( ) => Err ( Error :: ValueAndDefault ( self . value ) . into ( ) ) ,
147
- _ => Ok ( ( ) ) ,
148
- }
149
- }
150
148
pub ( crate ) fn check_range ( & self , range : & core:: ops:: Range < u64 > ) -> Result < ( ) , SvdError > {
151
149
match & self . value {
152
150
Some ( x) if !range. contains ( x) => Err ( Error :: OutOfRange ( * x, range. clone ( ) ) . into ( ) ) ,
0 commit comments