map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult plain(
    1. RichTextPlain value
    ),
  2. required TResult collection(
    1. RichTextCollection value
    ),
  3. required TResult bold(
    1. RichTextBold value
    ),
  4. required TResult italic(
    1. RichTextItalic value
    ),
  5. required TResult underline(
    1. RichTextUnderline value
    ),
  6. required TResult strikethrough(
    1. RichTextStrikethrough value
    ),
  7. required TResult spoiler(
    1. RichTextSpoiler value
    ),
  8. required TResult dateTime(
    1. RichTextDateTime value
    ),
  9. required TResult textMention(
    1. RichTextTextMention value
    ),
  10. required TResult subscript(
    1. RichTextSubscript value
    ),
  11. required TResult superscript(
    1. RichTextSuperscript value
    ),
  12. required TResult marked(
    1. RichTextMarked value
    ),
  13. required TResult code(
    1. RichTextCode value
    ),
  14. required TResult customEmoji(
    1. RichTextCustomEmoji value
    ),
  15. required TResult mathematicalExpression(
    1. RichTextMathematicalExpression value
    ),
  16. required TResult url(
    1. RichTextUrl value
    ),
  17. required TResult emailAddress(
    1. RichTextEmailAddress value
    ),
  18. required TResult phoneNumber(
    1. RichTextPhoneNumber value
    ),
  19. required TResult bankCardNumber(
    1. RichTextBankCardNumber value
    ),
  20. required TResult mention(
    1. RichTextMention value
    ),
  21. required TResult hashtag(
    1. RichTextHashtag value
    ),
  22. required TResult cashtag(
    1. RichTextCashtag value
    ),
  23. required TResult botCommand(
    1. RichTextBotCommand value
    ),
  24. required TResult anchor(
    1. RichTextAnchor value
    ),
  25. required TResult anchorLink(
    1. RichTextAnchorLink value
    ),
  26. required TResult reference(
    1. RichTextReference value
    ),
  27. required TResult referenceLink(
    1. RichTextReferenceLink 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(RichTextPlain value) plain,
  required TResult Function(RichTextCollection value) collection,
  required TResult Function(RichTextBold value) bold,
  required TResult Function(RichTextItalic value) italic,
  required TResult Function(RichTextUnderline value) underline,
  required TResult Function(RichTextStrikethrough value) strikethrough,
  required TResult Function(RichTextSpoiler value) spoiler,
  required TResult Function(RichTextDateTime value) dateTime,
  required TResult Function(RichTextTextMention value) textMention,
  required TResult Function(RichTextSubscript value) subscript,
  required TResult Function(RichTextSuperscript value) superscript,
  required TResult Function(RichTextMarked value) marked,
  required TResult Function(RichTextCode value) code,
  required TResult Function(RichTextCustomEmoji value) customEmoji,
  required TResult Function(RichTextMathematicalExpression value)
  mathematicalExpression,
  required TResult Function(RichTextUrl value) url,
  required TResult Function(RichTextEmailAddress value) emailAddress,
  required TResult Function(RichTextPhoneNumber value) phoneNumber,
  required TResult Function(RichTextBankCardNumber value) bankCardNumber,
  required TResult Function(RichTextMention value) mention,
  required TResult Function(RichTextHashtag value) hashtag,
  required TResult Function(RichTextCashtag value) cashtag,
  required TResult Function(RichTextBotCommand value) botCommand,
  required TResult Function(RichTextAnchor value) anchor,
  required TResult Function(RichTextAnchorLink value) anchorLink,
  required TResult Function(RichTextReference value) reference,
  required TResult Function(RichTextReferenceLink value) referenceLink,
}) {
  final _that = this;
  switch (_that) {
    case RichTextPlain():
      return plain(_that);
    case RichTextCollection():
      return collection(_that);
    case RichTextBold():
      return bold(_that);
    case RichTextItalic():
      return italic(_that);
    case RichTextUnderline():
      return underline(_that);
    case RichTextStrikethrough():
      return strikethrough(_that);
    case RichTextSpoiler():
      return spoiler(_that);
    case RichTextDateTime():
      return dateTime(_that);
    case RichTextTextMention():
      return textMention(_that);
    case RichTextSubscript():
      return subscript(_that);
    case RichTextSuperscript():
      return superscript(_that);
    case RichTextMarked():
      return marked(_that);
    case RichTextCode():
      return code(_that);
    case RichTextCustomEmoji():
      return customEmoji(_that);
    case RichTextMathematicalExpression():
      return mathematicalExpression(_that);
    case RichTextUrl():
      return url(_that);
    case RichTextEmailAddress():
      return emailAddress(_that);
    case RichTextPhoneNumber():
      return phoneNumber(_that);
    case RichTextBankCardNumber():
      return bankCardNumber(_that);
    case RichTextMention():
      return mention(_that);
    case RichTextHashtag():
      return hashtag(_that);
    case RichTextCashtag():
      return cashtag(_that);
    case RichTextBotCommand():
      return botCommand(_that);
    case RichTextAnchor():
      return anchor(_that);
    case RichTextAnchorLink():
      return anchorLink(_that);
    case RichTextReference():
      return reference(_that);
    case RichTextReferenceLink():
      return referenceLink(_that);
  }
}