maybeMap<TResult extends Object?> method

TResult maybeMap<TResult extends Object?>({
  1. TResult channel(
    1. MessageOriginChannel value
    )?,
  2. TResult chat(
    1. MessageOriginChat value
    )?,
  3. TResult hiddenUser(
    1. MessageOriginHiddenUser value
    )?,
  4. TResult user(
    1. MessageOriginUser value
    )?,
  5. required TResult orElse(),
})

Implementation

TResult maybeMap<TResult extends Object?>({
  TResult Function(MessageOriginChannel value)? channel,
  TResult Function(MessageOriginChat value)? chat,
  TResult Function(MessageOriginHiddenUser value)? hiddenUser,
  TResult Function(MessageOriginUser value)? user,
  required TResult Function() orElse,
}) {
  switch (getConstructor()) {
    case MessageOriginChannel.constructor:
      if (channel != null) {
        return channel.call(this as MessageOriginChannel);
      }
      break;
    case MessageOriginChat.constructor:
      if (chat != null) {
        return chat.call(this as MessageOriginChat);
      }
      break;
    case MessageOriginHiddenUser.constructor:
      if (hiddenUser != null) {
        return hiddenUser.call(this as MessageOriginHiddenUser);
      }
      break;
    case MessageOriginUser.constructor:
      if (user != null) {
        return user.call(this as MessageOriginUser);
      }
      break;
  }
  return orElse.call();
}