map<TResult extends Object?> method

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

Implementation

TResult map<TResult extends Object?>({
  required TResult Function(ChatJoinResultDeclined value) declined,
  required TResult Function(ChatJoinResultGuardBotApprovalRequired value)
  guardBotApprovalRequired,
  required TResult Function(ChatJoinResultRequestSent value) requestSent,
  required TResult Function(ChatJoinResultSuccess value) success,
}) {
  switch (getConstructor()) {
    case ChatJoinResultDeclined.constructor:
      return declined.call(this as ChatJoinResultDeclined);
    case ChatJoinResultGuardBotApprovalRequired.constructor:
      return guardBotApprovalRequired.call(
        this as ChatJoinResultGuardBotApprovalRequired,
      );
    case ChatJoinResultRequestSent.constructor:
      return requestSent.call(this as ChatJoinResultRequestSent);
    case ChatJoinResultSuccess.constructor:
      return success.call(this as ChatJoinResultSuccess);
  }
  throw StateError('not handled type Generator');
}