import 'package:collection/collection.dart'; enum Position { director, } 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 (Position): return Position.values.deserialize(value) as T?; default: return null; } }