enumByName<T extends Enum> method
an enum value by its name, in any case
Implementation
T? enumByName<T extends Enum>(String key, List<T> values) {
String? value = raw(key);
if (value == null) return null;
String name = value.toLowerCase();
for (T item in values) {
if (item.name.toLowerCase() == name) return item;
}
List<String> names = <String>[];
for (T item in values) {
names.add(item.name);
}
return _invalid(key, 'one of ${names.join(', ')}', value);
}