24 lines
485 B
Dart
24 lines
485 B
Dart
|
|
import 'package:collection/collection.dart';
|
||
|
|
|
||
|
|
enum Position {
|
||
|
|
director,
|
||
|
|
}
|
||
|
|
|
||
|
|
extension FFEnumExtensions<T extends Enum> on T {
|
||
|
|
String serialize() => name;
|
||
|
|
}
|
||
|
|
|
||
|
|
extension FFEnumListExtensions<T extends Enum> on Iterable<T> {
|
||
|
|
T? deserialize(String? value) =>
|
||
|
|
firstWhereOrNull((e) => e.serialize() == value);
|
||
|
|
}
|
||
|
|
|
||
|
|
T? deserializeEnum<T>(String? value) {
|
||
|
|
switch (T) {
|
||
|
|
case (Position):
|
||
|
|
return Position.values.deserialize(value) as T?;
|
||
|
|
default:
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
}
|