maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult declined(
    1. ChatJoinResultDeclined value
    )?,
  2. TResult guardBotApprovalRequired(
    1. ChatJoinResultGuardBotApprovalRequired value
    )?,
  3. TResult requestSent(
    1. ChatJoinResultRequestSent value
    )?,
  4. TResult success(
    1. ChatJoinResultSuccess value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(ChatJoinResultDeclined value)? declined,
  TResult Function(ChatJoinResultGuardBotApprovalRequired value)?
  guardBotApprovalRequired,
  TResult Function(ChatJoinResultRequestSent value)? requestSent,
  TResult Function(ChatJoinResultSuccess value)? success,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case ChatJoinResultDeclined.constructor:
      if (declined != null) {
        return declined.call(this as ChatJoinResultDeclined);
      }
      break;
    case ChatJoinResultGuardBotApprovalRequired.constructor:
      if (guardBotApprovalRequired != null) {
        return guardBotApprovalRequired.call(
          this as ChatJoinResultGuardBotApprovalRequired,
        );
      }
      break;
    case ChatJoinResultRequestSent.constructor:
      if (requestSent != null) {
        return requestSent.call(this as ChatJoinResultRequestSent);
      }
      break;
    case ChatJoinResultSuccess.constructor:
      if (success != null) {
        return success.call(this as ChatJoinResultSuccess);
      }
      break;
  }
  return orElse.call();
}