maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult ok(
    1. CanSendMessageToUserResultOk value
    )?,
  2. TResult userHasPaidMessages(
    1. CanSendMessageToUserResultUserHasPaidMessages value
    )?,
  3. TResult userIsDeleted(
    1. CanSendMessageToUserResultUserIsDeleted value
    )?,
  4. TResult userRestrictsNewChats(
    1. CanSendMessageToUserResultUserRestrictsNewChats value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(CanSendMessageToUserResultOk value)? ok,
  TResult Function(CanSendMessageToUserResultUserHasPaidMessages value)?
  userHasPaidMessages,
  TResult Function(CanSendMessageToUserResultUserIsDeleted value)?
  userIsDeleted,
  TResult Function(CanSendMessageToUserResultUserRestrictsNewChats value)?
  userRestrictsNewChats,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case CanSendMessageToUserResultOk.constructor:
      if (ok != null) {
        return ok.call(this as CanSendMessageToUserResultOk);
      }
      break;
    case CanSendMessageToUserResultUserHasPaidMessages.constructor:
      if (userHasPaidMessages != null) {
        return userHasPaidMessages.call(
          this as CanSendMessageToUserResultUserHasPaidMessages,
        );
      }
      break;
    case CanSendMessageToUserResultUserIsDeleted.constructor:
      if (userIsDeleted != null) {
        return userIsDeleted.call(
          this as CanSendMessageToUserResultUserIsDeleted,
        );
      }
      break;
    case CanSendMessageToUserResultUserRestrictsNewChats.constructor:
      if (userRestrictsNewChats != null) {
        return userRestrictsNewChats.call(
          this as CanSendMessageToUserResultUserRestrictsNewChats,
        );
      }
      break;
  }
  return orElse.call();
}