@@ -30,6 +30,7 @@ use stackable_operator::{
3030 types:: {
3131 common:: Port ,
3232 kubernetes:: { ConfigMapName , ContainerName , ListenerClassName } ,
33+ operator:: RoleName ,
3334 } ,
3435 } ,
3536 versioned:: versioned,
@@ -417,11 +418,23 @@ impl SupersetRole {
417418 Self :: Worker | Self :: Beat => None ,
418419 }
419420 }
421+ }
422+
423+ impl From < SupersetRole > for RoleName {
424+ fn from ( value : SupersetRole ) -> Self {
425+ value
426+ . to_string ( )
427+ . parse ( )
428+ . expect ( "a SupersetRole serialises to a valid RoleName" )
429+ }
430+ }
420431
421- pub fn role_name ( & self ) -> stackable_operator:: v2:: types:: operator:: RoleName {
422- self . to_string ( )
432+ impl From < & SupersetRole > for RoleName {
433+ fn from ( value : & SupersetRole ) -> Self {
434+ value
435+ . to_string ( )
423436 . parse ( )
424- . expect ( "a Superset serialises to a valid RoleName" )
437+ . expect ( "a SupersetRole serialises to a valid RoleName" )
425438 }
426439}
427440
@@ -603,17 +616,20 @@ impl v1alpha1::SupersetCluster {
603616
604617#[ cfg( test) ]
605618mod tests {
606- use stackable_operator:: versioned:: test_utils:: RoundtripTestData ;
619+ use stackable_operator:: {
620+ v2:: types:: operator:: RoleName , versioned:: test_utils:: RoundtripTestData ,
621+ } ;
607622 use strum:: IntoEnumIterator ;
608623
609624 use super :: { SupersetRole , v1alpha1} ;
610625
611- /// Locks the invariant behind the `expect` in [` SupersetRole::role_name`]: every
612- /// `SupersetRole` variant (present and future) must serialise to a valid `RoleName`.
626+ /// Locks the invariant behind the `expect` in the `From< SupersetRole> for RoleName` impls:
627+ /// every `SupersetRole` variant (present and future) must serialise to a valid `RoleName`.
613628 #[ test]
614629 fn every_superset_role_serialises_to_a_valid_role_name ( ) {
615630 for role in SupersetRole :: iter ( ) {
616- role. role_name ( ) ;
631+ let _: RoleName = ( & role) . into ( ) ;
632+ let _: RoleName = role. into ( ) ;
617633 }
618634 }
619635
0 commit comments