when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult network(
- String url,
- ImageParams params
- required TResult base64(
- String url,
- ImageParams params
- required TResult filePath(
- String url,
- ImageParams params
- required TResult asset(
- String url,
- ImageParams params
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( String url, ImageParams params) network,required TResult Function( String base64Code, ImageParams params) base64,required TResult Function( String filePath, ImageParams params) filePath,required TResult Function( String assetPath, ImageParams params) asset,}) {final _that = this;
switch (_that) {
case MyNetworkImage():
return network(_that.url,_that.params);case MyBase64Image():
return base64(_that.base64Code,_that.params);case MyFilePathImage():
return filePath(_that.filePath,_that.params);case MyAssetImage():
return asset(_that.assetPath,_that.params);}
}