maybeMap<TResult extends Object?> method
- @optionalTypeArgs
- TResult user(
- MessageOriginUser value
- TResult chat(
- MessageOriginChat value
- TResult channel(
- MessageOriginChannel value
- required TResult orElse(),
A variant of map that fallback to returning orElse.
It is equivalent to doing:
switch (sealedClass) {
case final Subclass value:
return ...;
case _:
return orElse();
}
Implementation
@optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
TResult Function(MessageOriginUser value)? user,
TResult Function(MessageOriginHiddenUser value)? hiddenUser,
TResult Function(MessageOriginChat value)? chat,
TResult Function(MessageOriginChannel value)? channel,
required TResult orElse(),
}) {
final _that = this;
switch (_that) {
case MessageOriginUser() when user != null:
return user(_that);
case MessageOriginHiddenUser() when hiddenUser != null:
return hiddenUser(_that);
case MessageOriginChat() when chat != null:
return chat(_that);
case MessageOriginChannel() when channel != null:
return channel(_that);
case _:
return orElse();
}
}