when<TResult extends Object?> method
- @optionalTypeArgs
- TResult $default(
- XrayInt32Range? maxConcurrency,
- XrayInt32Range? maxConnections,
- XrayInt32Range? cMaxReuseTimes,
- XrayInt32Range? hMaxRequestTimes,
- XrayInt32Range? hMaxReusableSecs,
- int? hKeepAlivePeriod,
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?>(TResult Function( XrayInt32Range? maxConcurrency, XrayInt32Range? maxConnections, XrayInt32Range? cMaxReuseTimes, XrayInt32Range? hMaxRequestTimes, XrayInt32Range? hMaxReusableSecs, int? hKeepAlivePeriod) $default,) {final _that = this;
switch (_that) {
case _XmuxConfig():
return $default(_that.maxConcurrency,_that.maxConnections,_that.cMaxReuseTimes,_that.hMaxRequestTimes,_that.hMaxReusableSecs,_that.hKeepAlivePeriod);case _:
throw StateError('Unexpected subclass');
}
}