stream<T extends Object> static method

Stream<Result<T>> stream<T extends Object>(
  1. String operation,
  2. Stream<Result<T>> source()
)

Implementation

static Stream<Result<T>> stream<T extends Object>(
  String operation,
  Stream<Result<T>> Function() source,
) async* {
  OdbcError? terminal;
  try {
    await for (final result in source()) {
      if (result.isError()) {
        terminal = normalizeOdbcError(
          result.exceptionOrNull()!,
          operation: operation,
        );
        break;
      }
      yield result;
    }
  } on Object catch (error, stackTrace) {
    final failure = normalizeOdbcError(
      error,
      operation: operation,
      stackTrace: stackTrace,
    );
    terminal = terminal?.withSecondary(failure) ?? failure;
  }
  if (terminal != null) yield Failure(terminal);
}