enumFromValue<T> function

T? enumFromValue<T>(
  1. List<T> values,
  2. dynamic input
)

Helper method for serializing enums from the native Android and iOS platforms.

Implementation

T? enumFromValue<T>(List<T> values, dynamic input) {
  if (input == null) return null;
  if (input is T) return input;

  if (input is int) {
    if (input >= 0 && input < values.length) return values[input];
  }

  final inputStr = input.toString().split('.').last.toLowerCase();
  for (var value in values) {
    final enumStr = value.toString().split('.').last.toLowerCase();
    if (enumStr == inputStr) return value;
  }

  return null;
}