maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult empty(
    1. UserStatusEmpty value
    )?,
  2. TResult lastMonth(
    1. UserStatusLastMonth value
    )?,
  3. TResult lastWeek(
    1. UserStatusLastWeek value
    )?,
  4. TResult offline(
    1. UserStatusOffline value
    )?,
  5. TResult online(
    1. UserStatusOnline value
    )?,
  6. TResult recently(
    1. UserStatusRecently value
    )?,
  7. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(UserStatusEmpty value)? empty,
  TResult Function(UserStatusLastMonth value)? lastMonth,
  TResult Function(UserStatusLastWeek value)? lastWeek,
  TResult Function(UserStatusOffline value)? offline,
  TResult Function(UserStatusOnline value)? online,
  TResult Function(UserStatusRecently value)? recently,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case UserStatusEmpty.constructor:
      if (empty != null) {
        return empty.call(this as UserStatusEmpty);
      }
      break;
    case UserStatusLastMonth.constructor:
      if (lastMonth != null) {
        return lastMonth.call(this as UserStatusLastMonth);
      }
      break;
    case UserStatusLastWeek.constructor:
      if (lastWeek != null) {
        return lastWeek.call(this as UserStatusLastWeek);
      }
      break;
    case UserStatusOffline.constructor:
      if (offline != null) {
        return offline.call(this as UserStatusOffline);
      }
      break;
    case UserStatusOnline.constructor:
      if (online != null) {
        return online.call(this as UserStatusOnline);
      }
      break;
    case UserStatusRecently.constructor:
      if (recently != null) {
        return recently.call(this as UserStatusRecently);
      }
      break;
  }
  return orElse.call();
}