when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult success(),
- required TResult failure(),
- required TResult info(),
- required TResult warning(),
- required TResult snackBar(),
- required TResult bottomSheet(),
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 title, String message) success,required TResult Function( String title, String message) failure,required TResult Function( String title, String message) info,required TResult Function( String title, String message) warning,required TResult Function( String message, bool isError) snackBar,required TResult Function( Widget builder, bool isDismissible) bottomSheet,}) {final _that = this;
switch (_that) {
case _Success():
return success(_that.title,_that.message);case _Failure():
return failure(_that.title,_that.message);case _Info():
return info(_that.title,_that.message);case _Warning():
return warning(_that.title,_that.message);case _SnackBar():
return snackBar(_that.message,_that.isError);case _BottomSheet():
return bottomSheet(_that.builder,_that.isDismissible);}
}