maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult getRooms(
    1. CommonApiParams? params
    )?,
  2. TResult getRoomsResult(
    1. CommonApiParams? params,
    2. Either<Failure, List<ChatRoom>> result
    )?,
  3. TResult getRoomCount(
    1. CommonApiParams? params
    )?,
  4. TResult getRoomCountResult(
    1. CommonApiParams? params,
    2. Either<Failure, int> result
    )?,
  5. TResult getRoomById(
    1. String chatRoomId
    )?,
  6. TResult getRoomByIdResult(
    1. String chatRoomId,
    2. Either<Failure, ChatRoom> result
    )?,
  7. TResult getRoomMessages(
    1. String chatRoomId,
    2. CommonApiParams? params
    )?,
  8. TResult getRoomMessagesResult(
    1. String chatRoomId,
    2. CommonApiParams? params,
    3. Either<Failure, List<ChatMessage>> result
    )?,
  9. TResult deleteRoom(
    1. String chatRoomId
    )?,
  10. TResult deleteRoomResult(
    1. String chatRoomId,
    2. Either<Failure, Unit> result
    )?,
  11. TResult archiveRoom(
    1. String chatRoomId
    )?,
  12. TResult archiveRoomResult(
    1. String chatRoomId,
    2. Either<Failure, ChatRoom> result
    )?,
  13. TResult unArchiveRoom(
    1. String chatRoomId
    )?,
  14. TResult unArchiveRoomResult(
    1. String chatRoomId,
    2. Either<Failure, ChatRoom> result
    )?,
  15. TResult markRoomAsRead(
    1. String chatRoomId
    )?,
  16. TResult markRoomAsReadResult(
    1. String chatRoomId,
    2. Either<Failure, ChatRoom> result
    )?,
  17. TResult sendMessage(
    1. SendMessageDto dto
    )?,
  18. TResult sendMessageResult(
    1. SendMessageDto dto,
    2. Either<Failure, ChatMessage> result
    )?,
  19. TResult deleteMessage(
    1. DeleteMessageParams params
    )?,
  20. TResult deleteMessageResult(
    1. DeleteMessageParams params,
    2. Either<Failure, Unit> result
    )?,
  21. TResult externalEventReceived(
    1. MessengerExternalEvent event
    )?,
  22. required TResult orElse(),
})

A variant of when that fallback to an orElse callback.

It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case _:
    return orElse();
}

Implementation

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function( CommonApiParams? params)?  getRooms,TResult Function( CommonApiParams? params,  Either<Failure, List<ChatRoom>> result)?  getRoomsResult,TResult Function( CommonApiParams? params)?  getRoomCount,TResult Function( CommonApiParams? params,  Either<Failure, int> result)?  getRoomCountResult,TResult Function( String chatRoomId)?  getRoomById,TResult Function( String chatRoomId,  Either<Failure, ChatRoom> result)?  getRoomByIdResult,TResult Function( String chatRoomId,  CommonApiParams? params)?  getRoomMessages,TResult Function( String chatRoomId,  CommonApiParams? params,  Either<Failure, List<ChatMessage>> result)?  getRoomMessagesResult,TResult Function( String chatRoomId)?  deleteRoom,TResult Function( String chatRoomId,  Either<Failure, Unit> result)?  deleteRoomResult,TResult Function( String chatRoomId)?  archiveRoom,TResult Function( String chatRoomId,  Either<Failure, ChatRoom> result)?  archiveRoomResult,TResult Function( String chatRoomId)?  unArchiveRoom,TResult Function( String chatRoomId,  Either<Failure, ChatRoom> result)?  unArchiveRoomResult,TResult Function( String chatRoomId)?  markRoomAsRead,TResult Function( String chatRoomId,  Either<Failure, ChatRoom> result)?  markRoomAsReadResult,TResult Function( SendMessageDto dto)?  sendMessage,TResult Function( SendMessageDto dto,  Either<Failure, ChatMessage> result)?  sendMessageResult,TResult Function( DeleteMessageParams params)?  deleteMessage,TResult Function( DeleteMessageParams params,  Either<Failure, Unit> result)?  deleteMessageResult,TResult Function( MessengerExternalEvent event)?  externalEventReceived,required TResult orElse(),}) {final _that = this;
switch (_that) {
case MessengerEventGetRooms() when getRooms != null:
return getRooms(_that.params);case MessengerEventGetRoomsResult() when getRoomsResult != null:
return getRoomsResult(_that.params,_that.result);case MessengerEventGetRoomCount() when getRoomCount != null:
return getRoomCount(_that.params);case MessengerEventGetRoomCountResult() when getRoomCountResult != null:
return getRoomCountResult(_that.params,_that.result);case MessengerEventGetRoomById() when getRoomById != null:
return getRoomById(_that.chatRoomId);case MessengerEventGetRoomByIdResult() when getRoomByIdResult != null:
return getRoomByIdResult(_that.chatRoomId,_that.result);case MessengerEventGetRoomMessages() when getRoomMessages != null:
return getRoomMessages(_that.chatRoomId,_that.params);case MessengerEventGetRoomMessagesResult() when getRoomMessagesResult != null:
return getRoomMessagesResult(_that.chatRoomId,_that.params,_that.result);case MessengerEventDeleteRoom() when deleteRoom != null:
return deleteRoom(_that.chatRoomId);case MessengerEventDeleteRoomResult() when deleteRoomResult != null:
return deleteRoomResult(_that.chatRoomId,_that.result);case MessengerEventArchiveRoom() when archiveRoom != null:
return archiveRoom(_that.chatRoomId);case MessengerEventArchiveRoomResult() when archiveRoomResult != null:
return archiveRoomResult(_that.chatRoomId,_that.result);case MessengerEventUnArchiveRoom() when unArchiveRoom != null:
return unArchiveRoom(_that.chatRoomId);case MessengerEventUnArchiveRoomResult() when unArchiveRoomResult != null:
return unArchiveRoomResult(_that.chatRoomId,_that.result);case MessengerEventMarkRoomAsRead() when markRoomAsRead != null:
return markRoomAsRead(_that.chatRoomId);case MessengerEventMarkRoomAsReadResult() when markRoomAsReadResult != null:
return markRoomAsReadResult(_that.chatRoomId,_that.result);case MessengerEventSendMessage() when sendMessage != null:
return sendMessage(_that.dto);case MessengerEventSendMessageResult() when sendMessageResult != null:
return sendMessageResult(_that.dto,_that.result);case MessengerEventDeleteMessage() when deleteMessage != null:
return deleteMessage(_that.params);case MessengerEventDeleteMessageResult() when deleteMessageResult != null:
return deleteMessageResult(_that.params,_that.result);case MessengerEventExternalEventReceived() when externalEventReceived != null:
return externalEventReceived(_that.event);case _:
  return orElse();

}
}