whenOrNull<TResult extends Object?> method

  1. @optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>(
  1. TResult? $default(
    1. String? host,
    2. String? path,
    3. SplitHTTPMode? mode,
    4. Map<String, String>? headers,
    5. XrayInt32Range? xPaddingBytes,
    6. bool? xPaddingObfsMode,
    7. String? xPaddingKey,
    8. String? xPaddingHeader,
    9. SplitHTTPPlacement? xPaddingPlacement,
    10. SplitHTTPPaddingMethod? xPaddingMethod,
    11. String? uplinkHTTPMethod,
    12. SplitHTTPPlacement? sessionPlacement,
    13. String? sessionKey,
    14. SplitHTTPPlacement? seqPlacement,
    15. String? seqKey,
    16. SplitHTTPPlacement? uplinkDataPlacement,
    17. String? uplinkDataKey,
    18. XrayInt32Range? uplinkChunkSize,
    19. bool? noGRPCHeader,
    20. bool? noSSEHeader,
    21. XrayInt32Range? scMaxEachPostBytes,
    22. XrayInt32Range? scMinPostsIntervalMs,
    23. int? scMaxBufferedPosts,
    24. XrayInt32Range? scStreamUpServerSecs,
    25. int? serverMaxHeaderBytes,
    26. XmuxConfig? xmux,
    27. StreamConfig? downloadSettings,
    28. Map<String, dynamic>? extra,
    )?
)

A variant of when that fallback to returning null

It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case _:
    return null;
}

Implementation

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>(TResult? Function( String? host,  String? path,  SplitHTTPMode? mode,  Map<String, String>? headers,  XrayInt32Range? xPaddingBytes,  bool? xPaddingObfsMode,  String? xPaddingKey,  String? xPaddingHeader,  SplitHTTPPlacement? xPaddingPlacement,  SplitHTTPPaddingMethod? xPaddingMethod,  String? uplinkHTTPMethod,  SplitHTTPPlacement? sessionPlacement,  String? sessionKey,  SplitHTTPPlacement? seqPlacement,  String? seqKey,  SplitHTTPPlacement? uplinkDataPlacement,  String? uplinkDataKey,  XrayInt32Range? uplinkChunkSize,  bool? noGRPCHeader,  bool? noSSEHeader,  XrayInt32Range? scMaxEachPostBytes,  XrayInt32Range? scMinPostsIntervalMs,  int? scMaxBufferedPosts,  XrayInt32Range? scStreamUpServerSecs,  int? serverMaxHeaderBytes,  XmuxConfig? xmux,  StreamConfig? downloadSettings,  Map<String, dynamic>? extra)?  $default,) {final _that = this;
switch (_that) {
case _SplitHTTPConfig() when $default != null:
return $default(_that.host,_that.path,_that.mode,_that.headers,_that.xPaddingBytes,_that.xPaddingObfsMode,_that.xPaddingKey,_that.xPaddingHeader,_that.xPaddingPlacement,_that.xPaddingMethod,_that.uplinkHTTPMethod,_that.sessionPlacement,_that.sessionKey,_that.seqPlacement,_that.seqKey,_that.uplinkDataPlacement,_that.uplinkDataKey,_that.uplinkChunkSize,_that.noGRPCHeader,_that.noSSEHeader,_that.scMaxEachPostBytes,_that.scMinPostsIntervalMs,_that.scMaxBufferedPosts,_that.scStreamUpServerSecs,_that.serverMaxHeaderBytes,_that.xmux,_that.downloadSettings,_that.extra);case _:
  return null;

}
}