when<TResult extends Object?> method
- @optionalTypeArgs
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( Commit data) commit,required TResult Function( Sync data) sync,required TResult Function( Identity data) identity,required TResult Function( Account data) account,required TResult Function( Info data) info,required TResult Function( Map<String, dynamic> data) unknown,}) {final _that = this;
switch (_that) {
case USyncSubscribeReposMessageCommit():
return commit(_that.data);case USyncSubscribeReposMessageSync():
return sync(_that.data);case USyncSubscribeReposMessageIdentity():
return identity(_that.data);case USyncSubscribeReposMessageAccount():
return account(_that.data);case USyncSubscribeReposMessageInfo():
return info(_that.data);case USyncSubscribeReposMessageUnknown():
return unknown(_that.data);}
}