maybeMap<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
  1. TResult user(
    1. UserItem value
    )?,
  2. TResult assistant(
    1. AssistantItem value
    )?,
  3. TResult context(
    1. ContextItem value
    )?,
  4. TResult historySummary(
    1. HistorySummaryItem value
    )?,
  5. 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( UserItem value)?  user,TResult Function( AssistantItem value)?  assistant,TResult Function( ContextItem value)?  context,TResult Function( HistorySummaryItem value)?  historySummary,required TResult orElse(),}){
final _that = this;
switch (_that) {
case UserItem() when user != null:
return user(_that);case AssistantItem() when assistant != null:
return assistant(_that);case ContextItem() when context != null:
return context(_that);case HistorySummaryItem() when historySummary != null:
return historySummary(_that);case _:
  return orElse();

}
}