| 1 | abstract class EnumerableItem<T> { |
| 2 | const EnumerableItem({required this.title, required this.raw}); |
| 3 | |
| 4 | final T raw; |
| 5 | final String title; |
| 6 | |
| 7 | @override |
| 8 | String toString() => title; |
| 9 | } |
| 10 | |
| 11 | mixin Serializable<T> on EnumerableItem<T> { |
| 12 | static Serializable deserialize<T>({required T raw}) => throw Exception('Unimplemented'); |
| 13 | T serialize() => raw; |
| 14 | } |