map<TResult extends Object?> method
- @optionalTypeArgs
- required TResult user(
- MessageOriginUser value
- required TResult chat(
- MessageOriginChat value
- required TResult channel(
- MessageOriginChannel 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(MessageOriginUser value) user,
required TResult Function(MessageOriginHiddenUser value) hiddenUser,
required TResult Function(MessageOriginChat value) chat,
required TResult Function(MessageOriginChannel value) channel,
}) {
final _that = this;
switch (_that) {
case MessageOriginUser():
return user(_that);
case MessageOriginHiddenUser():
return hiddenUser(_that);
case MessageOriginChat():
return chat(_that);
case MessageOriginChannel():
return channel(_that);
}
}