maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  1. TResult $default(
    1. String url,
    2. String method,
    3. dynamic data,
    4. Map<String, dynamic> queryParams,
    5. int statusCode,
    6. dynamic body,
    7. Map<String, dynamic> headers,
    8. Map<String, dynamic> responseHeaders,
    9. int timestamp,
    10. String projectName,
    11. Response? response,
    12. List<String> extendNotes,
    )?, {
  2. required TResult orElse(),
})

A variant of when that fallback to an orElse callback.

It is equivalent to doing:

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

Implementation

@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  TResult Function(
          String url,
          String method,
          dynamic data,
          Map<String, dynamic> queryParams,
          int statusCode,
          @JsonKey(toJson: _toJsonByData) dynamic body,
          Map<String, dynamic> headers,
          Map<String, dynamic> responseHeaders,
          int timestamp,
          String projectName,
          @JsonKey(
              toJson: null,
              fromJson: null,
              includeFromJson: false,
              includeToJson: false)
          Response? response,
          List<String> extendNotes)?
      $default, {
  required TResult orElse(),
}) {
  final _that = this;
  switch (_that) {
    case _SendResponseModel() when $default != null:
      return $default(
          _that.url,
          _that.method,
          _that.data,
          _that.queryParams,
          _that.statusCode,
          _that.body,
          _that.headers,
          _that.responseHeaders,
          _that.timestamp,
          _that.projectName,
          _that.response,
          _that.extendNotes);
    case _:
      return orElse();
  }
}