@@ -316,11 +316,11 @@ pub(crate) struct KubernetesCrateOptions {
316
316
impl Default for KubernetesCrateOptions {
317
317
fn default ( ) -> Self {
318
318
Self {
319
- k8s_openapi : Override :: new_default ( parse_quote ! { :: k8s_openapi } ) ,
320
- serde_json : Override :: new_default ( parse_quote ! { :: serde_json } ) ,
321
- kube_core : Override :: new_default ( parse_quote ! { :: kube:: core } ) ,
322
- schemars : Override :: new_default ( parse_quote ! { :: schemars } ) ,
323
- serde : Override :: new_default ( parse_quote ! { :: serde } ) ,
319
+ k8s_openapi : Override :: Default ( parse_quote ! { :: k8s_openapi } ) ,
320
+ serde_json : Override :: Default ( parse_quote ! { :: serde_json } ) ,
321
+ kube_core : Override :: Default ( parse_quote ! { :: kube:: core } ) ,
322
+ schemars : Override :: Default ( parse_quote ! { :: schemars } ) ,
323
+ serde : Override :: Default ( parse_quote ! { :: serde } ) ,
324
324
}
325
325
}
326
326
}
@@ -330,23 +330,23 @@ impl From<KubernetesCrateArguments> for KubernetesCrateOptions {
330
330
let mut crate_options = Self :: default ( ) ;
331
331
332
332
if let Some ( k8s_openapi) = args. k8s_openapi {
333
- crate_options. k8s_openapi = Override :: new_custom ( k8s_openapi) ;
333
+ crate_options. k8s_openapi = Override :: Overridden ( k8s_openapi) ;
334
334
}
335
335
336
336
if let Some ( serde_json) = args. serde_json {
337
- crate_options. serde_json = Override :: new_custom ( serde_json) ;
337
+ crate_options. serde_json = Override :: Overridden ( serde_json) ;
338
338
}
339
339
340
340
if let Some ( kube_core) = args. kube_core {
341
- crate_options. kube_core = Override :: new_custom ( kube_core) ;
341
+ crate_options. kube_core = Override :: Overridden ( kube_core) ;
342
342
}
343
343
344
344
if let Some ( schemars) = args. schemars {
345
- crate_options. schemars = Override :: new_custom ( schemars) ;
345
+ crate_options. schemars = Override :: Overridden ( schemars) ;
346
346
}
347
347
348
348
if let Some ( serde) = args. serde {
349
- crate_options. serde = Override :: new_custom ( serde) ;
349
+ crate_options. serde = Override :: Overridden ( serde) ;
350
350
}
351
351
352
352
crate_options
@@ -365,23 +365,23 @@ impl ToTokens for KubernetesCrateOptions {
365
365
serde,
366
366
} = self ;
367
367
368
- if let Some ( k8s_openapi) = k8s_openapi. get_if_overridden ( ) {
368
+ if let Override :: Overridden ( k8s_openapi) = k8s_openapi {
369
369
crate_overrides. extend ( quote ! { k8s_openapi = #k8s_openapi, } ) ;
370
370
}
371
371
372
- if let Some ( serde_json) = serde_json. get_if_overridden ( ) {
372
+ if let Override :: Overridden ( serde_json) = serde_json {
373
373
crate_overrides. extend ( quote ! { serde_json = #serde_json, } ) ;
374
374
}
375
375
376
- if let Some ( kube_core) = kube_core. get_if_overridden ( ) {
376
+ if let Override :: Overridden ( kube_core) = kube_core {
377
377
crate_overrides. extend ( quote ! { kube_core = #kube_core, } ) ;
378
378
}
379
379
380
- if let Some ( schemars) = schemars. get_if_overridden ( ) {
380
+ if let Override :: Overridden ( schemars) = schemars {
381
381
crate_overrides. extend ( quote ! { schemars = #schemars, } ) ;
382
382
}
383
383
384
- if let Some ( serde) = serde. get_if_overridden ( ) {
384
+ if let Override :: Overridden ( serde) = serde {
385
385
crate_overrides. extend ( quote ! { serde = #serde, } ) ;
386
386
}
387
387
@@ -393,44 +393,18 @@ impl ToTokens for KubernetesCrateOptions {
393
393
394
394
/// Wraps a value to indicate whether it is original or has been overridden.
395
395
#[ derive( Debug ) ]
396
- pub ( crate ) struct Override < T > {
397
- is_overridden : bool ,
398
- inner : T ,
399
- }
400
-
401
- impl < T > Override < T > {
402
- /// Mark a value as a default.
403
- ///
404
- /// This is used to indicate that the value is a default and was not overridden.
405
- pub ( crate ) fn new_default ( inner : T ) -> Self {
406
- Override {
407
- is_overridden : false ,
408
- inner,
409
- }
410
- }
411
-
412
- /// Mark a value as overridden.
413
- ///
414
- /// This is used to indicate that the value was overridden and not the default.
415
- pub ( crate ) fn new_custom ( inner : T ) -> Self {
416
- Override {
417
- is_overridden : true ,
418
- inner,
419
- }
420
- }
421
-
422
- pub ( crate ) fn get_if_overridden ( & self ) -> Option < & T > {
423
- match & self . is_overridden {
424
- true => Some ( & self . inner ) ,
425
- false => None ,
426
- }
427
- }
396
+ pub ( crate ) enum Override < T > {
397
+ Default ( T ) ,
398
+ Overridden ( T ) ,
428
399
}
429
400
430
401
impl < T > Deref for Override < T > {
431
402
type Target = T ;
432
403
433
404
fn deref ( & self ) -> & Self :: Target {
434
- & self . inner
405
+ match & self {
406
+ Override :: Default ( inner) => inner,
407
+ Override :: Overridden ( inner) => inner,
408
+ }
435
409
}
436
410
}
0 commit comments