map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult forceReply(
    1. ForceReply value
    ),
  2. required TResult inlineKeyboard(
    1. InlineKeyboardMarkup value
    ),
  3. required TResult keyboard(
    1. ReplyKeyboardMarkup value
    ),
  4. required TResult keyboardRemove(
    1. ReplyKeyboardRemove value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs
TResult map<TResult extends Object?>({
  required TResult Function(ForceReply value) forceReply,
  required TResult Function(InlineKeyboardMarkup value) inlineKeyboard,
  required TResult Function(ReplyKeyboardMarkup value) keyboard,
  required TResult Function(ReplyKeyboardRemove value) keyboardRemove,
}) {
  final _that = this;
  switch (_that) {
    case ForceReply():
      return forceReply(_that);
    case InlineKeyboardMarkup():
      return inlineKeyboard(_that);
    case ReplyKeyboardMarkup():
      return keyboard(_that);
    case ReplyKeyboardRemove():
      return keyboardRemove(_that);
  }
}