@@ -119,68 +119,70 @@ impl RegistryHelper {
119
119
Err ( e) => return self . handle_error_or_what_if ( e)
120
120
} ;
121
121
122
- let value_data = match & self . config . value_data {
123
- Some ( value_data) => value_data,
124
- None => & RegistryValueData :: None ,
125
- } ;
122
+ if let Some ( value_name) = & self . config . value_name {
123
+ let value_data = match & self . config . value_data {
124
+ Some ( value_data) => value_data,
125
+ None => & RegistryValueData :: None ,
126
+ } ;
126
127
127
- let Ok ( value_name) = U16CString :: from_str ( self . config . value_name . as_ref ( ) . unwrap ( ) ) else {
128
- return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueName" . to_string ( ) ) ) ;
129
- } ;
128
+ let Ok ( value_name) = U16CString :: from_str ( & value_name) else {
129
+ return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueName" . to_string ( ) ) ) ;
130
+ } ;
130
131
131
- let data = match value_data {
132
- RegistryValueData :: String ( s) => {
133
- let Ok ( utf16) = U16CString :: from_str ( s) else {
134
- return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueData" . to_string ( ) ) ) ;
135
- } ;
136
- Data :: String ( utf16)
137
- } ,
138
- RegistryValueData :: ExpandString ( s) => {
139
- let Ok ( utf16) = U16CString :: from_str ( s) else {
140
- return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueData" . to_string ( ) ) ) ;
141
- } ;
142
- Data :: ExpandString ( utf16)
143
- } ,
144
- RegistryValueData :: Binary ( b) => {
145
- Data :: Binary ( b. clone ( ) )
146
- } ,
147
- RegistryValueData :: DWord ( d) => {
148
- Data :: U32 ( * d)
149
- } ,
150
- RegistryValueData :: MultiString ( m) => {
151
- let mut m16: Vec < UCString < u16 > > = Vec :: < UCString < u16 > > :: new ( ) ;
152
- for s in m {
132
+ let data = match value_data {
133
+ RegistryValueData :: String ( s) => {
153
134
let Ok ( utf16) = U16CString :: from_str ( s) else {
154
135
return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueData" . to_string ( ) ) ) ;
155
136
} ;
156
- m16. push ( utf16) ;
157
- }
158
- Data :: MultiString ( m16)
159
- } ,
160
- RegistryValueData :: QWord ( q) => {
161
- Data :: U64 ( * q)
162
- } ,
163
- RegistryValueData :: None => {
164
- Data :: None
165
- } ,
166
- } ;
167
-
168
- if self . what_if {
169
- return Ok ( Some ( Registry {
170
- key_path : self . config . key_path . clone ( ) ,
171
- value_data : match data {
172
- Data :: None => None ,
173
- _ => Some ( convert_reg_value ( & data) ?) ,
137
+ Data :: String ( utf16)
174
138
} ,
175
- value_name : self . config . value_name . clone ( ) ,
176
- metadata : if what_if_metadata. is_empty ( ) { None } else { Some ( Metadata { what_if : Some ( what_if_metadata) } ) } ,
177
- ..Default :: default ( )
178
- } ) ) ;
179
- }
139
+ RegistryValueData :: ExpandString ( s) => {
140
+ let Ok ( utf16) = U16CString :: from_str ( s) else {
141
+ return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueData" . to_string ( ) ) ) ;
142
+ } ;
143
+ Data :: ExpandString ( utf16)
144
+ } ,
145
+ RegistryValueData :: Binary ( b) => {
146
+ Data :: Binary ( b. clone ( ) )
147
+ } ,
148
+ RegistryValueData :: DWord ( d) => {
149
+ Data :: U32 ( * d)
150
+ } ,
151
+ RegistryValueData :: MultiString ( m) => {
152
+ let mut m16: Vec < UCString < u16 > > = Vec :: < UCString < u16 > > :: new ( ) ;
153
+ for s in m {
154
+ let Ok ( utf16) = U16CString :: from_str ( s) else {
155
+ return self . handle_error_or_what_if ( RegistryError :: Utf16Conversion ( "valueData" . to_string ( ) ) ) ;
156
+ } ;
157
+ m16. push ( utf16) ;
158
+ }
159
+ Data :: MultiString ( m16)
160
+ } ,
161
+ RegistryValueData :: QWord ( q) => {
162
+ Data :: U64 ( * q)
163
+ } ,
164
+ RegistryValueData :: None => {
165
+ Data :: None
166
+ } ,
167
+ } ;
180
168
181
- if let Some ( reg_key) = reg_key {
182
- reg_key. set_value ( & value_name, & data) ?;
183
- } ;
169
+ if self . what_if {
170
+ return Ok ( Some ( Registry {
171
+ key_path : self . config . key_path . clone ( ) ,
172
+ value_data : match data {
173
+ Data :: None => None ,
174
+ _ => Some ( convert_reg_value ( & data) ?) ,
175
+ } ,
176
+ value_name : self . config . value_name . clone ( ) ,
177
+ metadata : if what_if_metadata. is_empty ( ) { None } else { Some ( Metadata { what_if : Some ( what_if_metadata) } ) } ,
178
+ ..Default :: default ( )
179
+ } ) ) ;
180
+ }
181
+
182
+ if let Some ( reg_key) = reg_key {
183
+ reg_key. set_value ( & value_name, & data) ?;
184
+ } ;
185
+ }
184
186
185
187
if self . what_if {
186
188
return Ok ( Some ( Registry {
0 commit comments