map<TResult extends Object?> method

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

Implementation

TResult map<TResult extends Object?>({
  required TResult Function(MessageOriginChannel value) channel,
  required TResult Function(MessageOriginChat value) chat,
  required TResult Function(MessageOriginHiddenUser value) hiddenUser,
  required TResult Function(MessageOriginUser value) user,
}) {
  switch (getConstructor()) {
    case MessageOriginChannel.constructor:
      return channel.call(this as MessageOriginChannel);
    case MessageOriginChat.constructor:
      return chat.call(this as MessageOriginChat);
    case MessageOriginHiddenUser.constructor:
      return hiddenUser.call(this as MessageOriginHiddenUser);
    case MessageOriginUser.constructor:
      return user.call(this as MessageOriginUser);
  }
  throw StateError('not handled type Generator');
}