when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult adultContentPref(
    1. AdultContentPref data
    ),
  2. required TResult contentLabelPref(
    1. ContentLabelPref data
    ),
  3. required TResult savedFeedsPref(
    1. SavedFeedsPref data
    ),
  4. required TResult savedFeedsPrefV2(
    1. SavedFeedsPrefV2 data
    ),
  5. required TResult personalDetailsPref(
    1. PersonalDetailsPref data
    ),
  6. required TResult feedViewPref(
    1. FeedViewPref data
    ),
  7. required TResult threadViewPref(
    1. ThreadViewPref data
    ),
  8. required TResult interestsPref(
    1. InterestsPref data
    ),
  9. required TResult mutedWordsPref(
    1. MutedWordsPref data
    ),
  10. required TResult hiddenPostsPref(
    1. HiddenPostsPref data
    ),
  11. required TResult bskyAppStatePref(
    1. BskyAppStatePref data
    ),
  12. required TResult labelersPref(
    1. LabelersPref data
    ),
  13. required TResult postInteractionSettingsPref(
    1. PostInteractionSettingsPref data
    ),
  14. required TResult verificationPrefs(
    1. VerificationPrefs data
    ),
  15. required TResult unknown(
    1. Map<String, dynamic> data
    ),
})

A switch-like method, using callbacks.

As opposed to map, this offers destructuring. It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case Subclass2(:final field2):
    return ...;
}

Implementation

@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( AdultContentPref data)  adultContentPref,required TResult Function( ContentLabelPref data)  contentLabelPref,required TResult Function( SavedFeedsPref data)  savedFeedsPref,required TResult Function( SavedFeedsPrefV2 data)  savedFeedsPrefV2,required TResult Function( PersonalDetailsPref data)  personalDetailsPref,required TResult Function( FeedViewPref data)  feedViewPref,required TResult Function( ThreadViewPref data)  threadViewPref,required TResult Function( InterestsPref data)  interestsPref,required TResult Function( MutedWordsPref data)  mutedWordsPref,required TResult Function( HiddenPostsPref data)  hiddenPostsPref,required TResult Function( BskyAppStatePref data)  bskyAppStatePref,required TResult Function( LabelersPref data)  labelersPref,required TResult Function( PostInteractionSettingsPref data)  postInteractionSettingsPref,required TResult Function( VerificationPrefs data)  verificationPrefs,required TResult Function( Map<String, dynamic> data)  unknown,}) {final _that = this;
switch (_that) {
case UPreferencesAdultContentPref():
return adultContentPref(_that.data);case UPreferencesContentLabelPref():
return contentLabelPref(_that.data);case UPreferencesSavedFeedsPref():
return savedFeedsPref(_that.data);case UPreferencesSavedFeedsPrefV2():
return savedFeedsPrefV2(_that.data);case UPreferencesPersonalDetailsPref():
return personalDetailsPref(_that.data);case UPreferencesFeedViewPref():
return feedViewPref(_that.data);case UPreferencesThreadViewPref():
return threadViewPref(_that.data);case UPreferencesInterestsPref():
return interestsPref(_that.data);case UPreferencesMutedWordsPref():
return mutedWordsPref(_that.data);case UPreferencesHiddenPostsPref():
return hiddenPostsPref(_that.data);case UPreferencesBskyAppStatePref():
return bskyAppStatePref(_that.data);case UPreferencesLabelersPref():
return labelersPref(_that.data);case UPreferencesPostInteractionSettingsPref():
return postInteractionSettingsPref(_that.data);case UPreferencesVerificationPrefs():
return verificationPrefs(_that.data);case UPreferencesUnknown():
return unknown(_that.data);}
}