enum UiDesign { MATERIAL, CUPERTINO, FLUENT, } extension UIName on UiDesign { String get userInterfaceName => (const { UiDesign.MATERIAL: 'Material', UiDesign.CUPERTINO: 'Cupertino', UiDesign.FLUENT: 'Fluent', })[this]!; } class UnmatchedUiDesignException implements Exception { final UiDesign uiDesign; UnmatchedUiDesignException(this.uiDesign); @override String toString() { return '$uiDesign was not matched'; } }