when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult getRooms(
- CommonApiParams? params
- required TResult getRoomsResult(),
- required TResult getRoomCount(
- CommonApiParams? params
- required TResult getRoomCountResult(
- CommonApiParams? params,
- Either<
Failure, int> result
- required TResult getRoomById(
- String chatRoomId
- required TResult getRoomByIdResult(),
- required TResult getRoomMessages(
- String chatRoomId,
- CommonApiParams? params
- required TResult getRoomMessagesResult(
- String chatRoomId,
- CommonApiParams? params,
- Either<
Failure, List< resultChatMessage> >
- required TResult deleteRoom(
- String chatRoomId
- required TResult deleteRoomResult(
- String chatRoomId,
- Either<
Failure, Unit> result
- required TResult archiveRoom(
- String chatRoomId
- required TResult archiveRoomResult(),
- required TResult unArchiveRoom(
- String chatRoomId
- required TResult unArchiveRoomResult(),
- required TResult markRoomAsRead(
- String chatRoomId
- required TResult markRoomAsReadResult(),
- required TResult sendMessage(
- SendMessageDto dto
- required TResult sendMessageResult(
- SendMessageDto dto,
- Either<
Failure, ChatMessage> result
- required TResult deleteMessage(
- DeleteMessageParams params
- required TResult deleteMessageResult(
- DeleteMessageParams params,
- Either<
Failure, Unit> result
- required TResult externalEventReceived(
- MessengerExternalEvent event
A switch-like method, using callbacks.
As opposed to map, this offers destructuring.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case Subclass2(:final field2):
return ...;
}
Implementation
@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( CommonApiParams? params) getRooms,required TResult Function( CommonApiParams? params, Either<Failure, List<ChatRoom>> result) getRoomsResult,required TResult Function( CommonApiParams? params) getRoomCount,required TResult Function( CommonApiParams? params, Either<Failure, int> result) getRoomCountResult,required TResult Function( String chatRoomId) getRoomById,required TResult Function( String chatRoomId, Either<Failure, ChatRoom> result) getRoomByIdResult,required TResult Function( String chatRoomId, CommonApiParams? params) getRoomMessages,required TResult Function( String chatRoomId, CommonApiParams? params, Either<Failure, List<ChatMessage>> result) getRoomMessagesResult,required TResult Function( String chatRoomId) deleteRoom,required TResult Function( String chatRoomId, Either<Failure, Unit> result) deleteRoomResult,required TResult Function( String chatRoomId) archiveRoom,required TResult Function( String chatRoomId, Either<Failure, ChatRoom> result) archiveRoomResult,required TResult Function( String chatRoomId) unArchiveRoom,required TResult Function( String chatRoomId, Either<Failure, ChatRoom> result) unArchiveRoomResult,required TResult Function( String chatRoomId) markRoomAsRead,required TResult Function( String chatRoomId, Either<Failure, ChatRoom> result) markRoomAsReadResult,required TResult Function( SendMessageDto dto) sendMessage,required TResult Function( SendMessageDto dto, Either<Failure, ChatMessage> result) sendMessageResult,required TResult Function( DeleteMessageParams params) deleteMessage,required TResult Function( DeleteMessageParams params, Either<Failure, Unit> result) deleteMessageResult,required TResult Function( MessengerExternalEvent event) externalEventReceived,}) {final _that = this;
switch (_that) {
case MessengerEventGetRooms():
return getRooms(_that.params);case MessengerEventGetRoomsResult():
return getRoomsResult(_that.params,_that.result);case MessengerEventGetRoomCount():
return getRoomCount(_that.params);case MessengerEventGetRoomCountResult():
return getRoomCountResult(_that.params,_that.result);case MessengerEventGetRoomById():
return getRoomById(_that.chatRoomId);case MessengerEventGetRoomByIdResult():
return getRoomByIdResult(_that.chatRoomId,_that.result);case MessengerEventGetRoomMessages():
return getRoomMessages(_that.chatRoomId,_that.params);case MessengerEventGetRoomMessagesResult():
return getRoomMessagesResult(_that.chatRoomId,_that.params,_that.result);case MessengerEventDeleteRoom():
return deleteRoom(_that.chatRoomId);case MessengerEventDeleteRoomResult():
return deleteRoomResult(_that.chatRoomId,_that.result);case MessengerEventArchiveRoom():
return archiveRoom(_that.chatRoomId);case MessengerEventArchiveRoomResult():
return archiveRoomResult(_that.chatRoomId,_that.result);case MessengerEventUnArchiveRoom():
return unArchiveRoom(_that.chatRoomId);case MessengerEventUnArchiveRoomResult():
return unArchiveRoomResult(_that.chatRoomId,_that.result);case MessengerEventMarkRoomAsRead():
return markRoomAsRead(_that.chatRoomId);case MessengerEventMarkRoomAsReadResult():
return markRoomAsReadResult(_that.chatRoomId,_that.result);case MessengerEventSendMessage():
return sendMessage(_that.dto);case MessengerEventSendMessageResult():
return sendMessageResult(_that.dto,_that.result);case MessengerEventDeleteMessage():
return deleteMessage(_that.params);case MessengerEventDeleteMessageResult():
return deleteMessageResult(_that.params,_that.result);case MessengerEventExternalEventReceived():
return externalEventReceived(_that.event);}
}