protected<T extends Enum> static method

Async<TSharedProtectedEnumPod<T>> protected<T extends Enum>(
  1. String key, {
  2. required Iterable<T> options,
  3. required T initialValue,
})

Implementation

static Async<TSharedProtectedEnumPod<T>> protected<T extends Enum>(
  String key, {
  required Iterable<T> options,
  required T initialValue,
}) {
  return TSharedProtectedEnumPod.create(
    key,
    fromValue: (rawValue) {
      if (rawValue == null) return initialValue;
      return options.firstWhere(
        (e) => e.name.toLowerCase() == rawValue.toLowerCase(),
        orElse: () => initialValue,
      );
    },
    toValue: (value) => value.name,
    initialValue: initialValue,
  );
}