import 'package:collection/collection.dart'; enum AppHeaderComponent { menu, home, } enum MenuView { list_grid, list, grid, } enum MenuItem { button, card } extension FFEnumExtensions on T { String serialize() => name; } extension FFEnumListExtensions on Iterable { T? deserialize(String? value) => firstWhereOrNull((e) => e.serialize() == value); } T? deserializeEnum(String? value) { switch (T) { case (AppHeaderComponent): return AppHeaderComponent.values.deserialize(value) as T?; default: return null; } }