when<TResult extends Object?> method
- @optionalTypeArgs
- TResult $default(
- String swagger,
- Info? info,
- String? host,
- String? basePath,
- List<
String> ? schemes, - List<
String> ? consumes, - List<
String> ? produces, - Map<
String, PathItem> paths, - Map<
String, Schema> definitions, - Map<
String, SecurityScheme> securityDefinitions, - List<
SecurityRequirement> security, - ExternalDocs? externalDocs,
- List<
Tag> tags, - @JsonKey.new(includeIfNull: false, includeFromJson: false, includeToJson: false) Map<
String, dynamic> ? extensions,
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( String swagger, Info? info, String? host, String? basePath, List<String>? schemes, List<String>? consumes, List<String>? produces, Map<String, PathItem> paths, Map<String, Schema> definitions, Map<String, SecurityScheme> securityDefinitions, List<SecurityRequirement> security, ExternalDocs? externalDocs, List<Tag> tags, @JsonKey(includeIfNull: false, includeFromJson: false, includeToJson: false) Map<String, dynamic>? extensions) $default,) {final _that = this;
switch (_that) {
case _OpenAPI():
return $default(_that.swagger,_that.info,_that.host,_that.basePath,_that.schemes,_that.consumes,_that.produces,_that.paths,_that.definitions,_that.securityDefinitions,_that.security,_that.externalDocs,_that.tags,_that.extensions);case _:
throw StateError('Unexpected subclass');
}
}