when<TResult extends Object?> method
- @optionalTypeArgs
- TResult $default()
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(@JsonKey(name: 'openapi') String version, Info info, ExternalDocs? externalDocs, String? jsonSchemaDialect, List<Server>? servers, List<Tag>? tags, Map<String, PathItem>? paths, Map<String, PathItem>? webhooks, Components? components, List<Security>? security, Map<String, List<String>> extraSchemaMapping) $default,) {final _that = this;
switch (_that) {
case _OpenApi():
return $default(_that.version,_that.info,_that.externalDocs,_that.jsonSchemaDialect,_that.servers,_that.tags,_that.paths,_that.webhooks,_that.components,_that.security,_that.extraSchemaMapping);case _:
throw StateError('Unexpected subclass');
}
}