inferEnumValuesFromIterable function

List<Enum> inferEnumValuesFromIterable(
  1. dynamic value
)

Implementation

List<Enum> inferEnumValuesFromIterable(dynamic value) {
  if (value is! Iterable) {
    return const <Enum>[];
  }

  Set<String> seen = <String>{};
  List<Enum> values = <Enum>[];
  for (Object? item in value) {
    if (item is! Enum) {
      continue;
    }

    String key = '${item.runtimeType}:${item.name}';
    if (seen.add(key)) {
      values.add(item);
    }
  }

  return values;
}