map<TResult extends Object?> method

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