maybeMap<T extends Object?> method

T maybeMap<T extends Object?>({
  1. required T orElse,
  2. T? map,
  3. T? maybeMap,
})

Optionally map all values of the enum

default value is provided when value has not been mapped

Implementation

T maybeMap<T extends Object?>({
  required T orElse,
  T? map,
  T? maybeMap,
}) {
  var isNullable = true;
  try {
    final value = null as T;
  } catch (_) {
    isNullable = false;
  }

  switch (this) {
    case MethodType.map:
      if (map == null && !isNullable) return orElse;
      return map as T;
    case MethodType.maybeMap:
      if (maybeMap == null && !isNullable) return orElse;
      return maybeMap as T;
  }
}