maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult ok(
    1. CheckChatUsernameResultOk value
    )?,
  2. TResult publicChatsTooMany(
    1. CheckChatUsernameResultPublicChatsTooMany value
    )?,
  3. TResult publicGroupsUnavailable(
    1. CheckChatUsernameResultPublicGroupsUnavailable value
    )?,
  4. TResult usernameInvalid(
    1. CheckChatUsernameResultUsernameInvalid value
    )?,
  5. TResult usernameOccupied(
    1. CheckChatUsernameResultUsernameOccupied value
    )?,
  6. TResult usernamePurchasable(
    1. CheckChatUsernameResultUsernamePurchasable value
    )?,
  7. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(CheckChatUsernameResultOk value)? ok,
  TResult Function(CheckChatUsernameResultPublicChatsTooMany value)?
  publicChatsTooMany,
  TResult Function(CheckChatUsernameResultPublicGroupsUnavailable value)?
  publicGroupsUnavailable,
  TResult Function(CheckChatUsernameResultUsernameInvalid value)?
  usernameInvalid,
  TResult Function(CheckChatUsernameResultUsernameOccupied value)?
  usernameOccupied,
  TResult Function(CheckChatUsernameResultUsernamePurchasable value)?
  usernamePurchasable,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case CheckChatUsernameResultOk.constructor:
      if (ok != null) {
        return ok.call(this as CheckChatUsernameResultOk);
      }
      break;
    case CheckChatUsernameResultPublicChatsTooMany.constructor:
      if (publicChatsTooMany != null) {
        return publicChatsTooMany.call(
          this as CheckChatUsernameResultPublicChatsTooMany,
        );
      }
      break;
    case CheckChatUsernameResultPublicGroupsUnavailable.constructor:
      if (publicGroupsUnavailable != null) {
        return publicGroupsUnavailable.call(
          this as CheckChatUsernameResultPublicGroupsUnavailable,
        );
      }
      break;
    case CheckChatUsernameResultUsernameInvalid.constructor:
      if (usernameInvalid != null) {
        return usernameInvalid.call(
          this as CheckChatUsernameResultUsernameInvalid,
        );
      }
      break;
    case CheckChatUsernameResultUsernameOccupied.constructor:
      if (usernameOccupied != null) {
        return usernameOccupied.call(
          this as CheckChatUsernameResultUsernameOccupied,
        );
      }
      break;
    case CheckChatUsernameResultUsernamePurchasable.constructor:
      if (usernamePurchasable != null) {
        return usernamePurchasable.call(
          this as CheckChatUsernameResultUsernamePurchasable,
        );
      }
      break;
  }
  return orElse.call();
}