executeStream<S, E extends Object> method
- StreamTask<
S, E> task
Similar to executeNormal, except that this will return a Stream instead of a Future.
Implementation
Stream<S> executeStream<S, E extends Object>(StreamTask<S, E> task) async* {
final portName = ExecuteStreamPortGenerator.create(task.constMeta.debugName);
final receivePort = broadcastPort(portName);
task.callFfi(receivePort.sendPort.nativePort);
await for (final raw in receivePort) {
try {
yield _transformRust2DartMessage(raw, task.parseSuccessData, task.parseErrorData);
} on _CloseStreamException {
receivePort.close();
break;
}
}
}