@@ -316,11 +316,11 @@ pub(crate) struct KubernetesCrateOptions {
316316impl Default for KubernetesCrateOptions {
317317 fn default ( ) -> Self {
318318 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 } ) ,
324324 }
325325 }
326326}
@@ -330,23 +330,23 @@ impl From<KubernetesCrateArguments> for KubernetesCrateOptions {
330330 let mut crate_options = Self :: default ( ) ;
331331
332332 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) ;
334334 }
335335
336336 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) ;
338338 }
339339
340340 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) ;
342342 }
343343
344344 if let Some ( schemars) = args. schemars {
345- crate_options. schemars = Override :: new_custom ( schemars) ;
345+ crate_options. schemars = Override :: Overridden ( schemars) ;
346346 }
347347
348348 if let Some ( serde) = args. serde {
349- crate_options. serde = Override :: new_custom ( serde) ;
349+ crate_options. serde = Override :: Overridden ( serde) ;
350350 }
351351
352352 crate_options
@@ -365,23 +365,23 @@ impl ToTokens for KubernetesCrateOptions {
365365 serde,
366366 } = self ;
367367
368- if let Some ( k8s_openapi) = k8s_openapi. get_if_overridden ( ) {
368+ if let Override :: Overridden ( k8s_openapi) = k8s_openapi {
369369 crate_overrides. extend ( quote ! { k8s_openapi = #k8s_openapi, } ) ;
370370 }
371371
372- if let Some ( serde_json) = serde_json. get_if_overridden ( ) {
372+ if let Override :: Overridden ( serde_json) = serde_json {
373373 crate_overrides. extend ( quote ! { serde_json = #serde_json, } ) ;
374374 }
375375
376- if let Some ( kube_core) = kube_core. get_if_overridden ( ) {
376+ if let Override :: Overridden ( kube_core) = kube_core {
377377 crate_overrides. extend ( quote ! { kube_core = #kube_core, } ) ;
378378 }
379379
380- if let Some ( schemars) = schemars. get_if_overridden ( ) {
380+ if let Override :: Overridden ( schemars) = schemars {
381381 crate_overrides. extend ( quote ! { schemars = #schemars, } ) ;
382382 }
383383
384- if let Some ( serde) = serde. get_if_overridden ( ) {
384+ if let Override :: Overridden ( serde) = serde {
385385 crate_overrides. extend ( quote ! { serde = #serde, } ) ;
386386 }
387387
@@ -393,44 +393,18 @@ impl ToTokens for KubernetesCrateOptions {
393393
394394/// Wraps a value to indicate whether it is original or has been overridden.
395395#[ 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 ) ,
428399}
429400
430401impl < T > Deref for Override < T > {
431402 type Target = T ;
432403
433404 fn deref ( & self ) -> & Self :: Target {
434- & self . inner
405+ match & self {
406+ Override :: Default ( inner) => inner,
407+ Override :: Overridden ( inner) => inner,
408+ }
435409 }
436410}
0 commit comments