maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult directMessages(
    1. MessageTopicDirectMessages value
    )?,
  2. TResult forum(
    1. MessageTopicForum value
    )?,
  3. TResult savedMessages(
    1. MessageTopicSavedMessages value
    )?,
  4. TResult thread(
    1. MessageTopicThread value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(MessageTopicDirectMessages value)? directMessages,
  TResult Function(MessageTopicForum value)? forum,
  TResult Function(MessageTopicSavedMessages value)? savedMessages,
  TResult Function(MessageTopicThread value)? thread,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case MessageTopicDirectMessages.constructor:
      if (directMessages != null) {
        return directMessages.call(this as MessageTopicDirectMessages);
      }
      break;
    case MessageTopicForum.constructor:
      if (forum != null) {
        return forum.call(this as MessageTopicForum);
      }
      break;
    case MessageTopicSavedMessages.constructor:
      if (savedMessages != null) {
        return savedMessages.call(this as MessageTopicSavedMessages);
      }
      break;
    case MessageTopicThread.constructor:
      if (thread != null) {
        return thread.call(this as MessageTopicThread);
      }
      break;
  }
  return orElse.call();
}