match<T> function
Match a value from a Map of data.
Returns defaultValue if no match is found, or throws if no default provided.
Implementation
T match<T>(
dynamic value,
Map<dynamic, T> Function() values, {
T? defaultValue,
}) {
if (value == null) {
if (defaultValue != null) return defaultValue;
throw ArgumentError(
'Value cannot be null when no defaultValue is provided',
);
}
final valuesMeta = values();
if (valuesMeta.containsKey(value)) {
return valuesMeta[value] as T;
}
NyLogger.error('The value "$value" does not match any values provided');
if (defaultValue != null) {
return defaultValue;
}
throw ArgumentError('The value "$value" does not match any values provided');
}