when<TResult extends Object?> method
- @optionalTypeArgs
- required TResult system(
- String programId,
- ParsedSystemInstruction parsed
- required TResult splToken(
- ParsedSplTokenInstruction parsed
- required TResult memo(
- String? memo
- required TResult unsupported(
- String? program
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?>({required TResult Function( String programId, ParsedSystemInstruction parsed) system,required TResult Function( ParsedSplTokenInstruction parsed) splToken,required TResult Function(@JsonKey(name: 'parsed') String? memo) memo,required TResult Function( String? program) unsupported,}) {final _that = this;
switch (_that) {
case ParsedInstructionSystem():
return system(_that.programId,_that.parsed);case ParsedInstructionSplToken():
return splToken(_that.parsed);case ParsedInstructionMemo():
return memo(_that.memo);case ParsedInstructionUnsupported():
return unsupported(_that.program);}
}