when<TResult extends Object?> method
- @optionalTypeArgs
- TResult $default(
- String? password,
- @JsonKey.new(name: 'ascii') String? ascii,
- String? customTable,
- @JsonKey.new(name: 'custom_table') String? legacyCustomTable,
- List<
String> ? customTables, - @JsonKey.new(name: 'custom_tables') List<
String> ? legacyCustomSets, - int? paddingMin,
- @JsonKey.new(name: 'padding_min') int? legacyPaddingMin,
- int? paddingMax,
- @JsonKey.new(name: 'padding_max') int? legacyPaddingMax,
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? password, @JsonKey(name: 'ascii') String? ascii, String? customTable, @JsonKey(name: 'custom_table') String? legacyCustomTable, List<String>? customTables, @JsonKey(name: 'custom_tables') List<String>? legacyCustomSets, int? paddingMin, @JsonKey(name: 'padding_min') int? legacyPaddingMin, int? paddingMax, @JsonKey(name: 'padding_max') int? legacyPaddingMax) $default,) {final _that = this;
switch (_that) {
case _Sudoku():
return $default(_that.password,_that.ascii,_that.customTable,_that.legacyCustomTable,_that.customTables,_that.legacyCustomSets,_that.paddingMin,_that.legacyPaddingMin,_that.paddingMax,_that.legacyPaddingMax);case _:
throw StateError('Unexpected subclass');
}
}