bidi<I extends Object, O extends Object> method

Stream<O> bidi<I extends Object, O extends Object>(
  1. Spec<I, O> spec,
  2. Stream<I> input, {
  3. void onHeader(
    1. Headers
    )?,
  4. void onTrailer(
    1. Headers
    )?,
  5. AbortSignal? signal,
  6. Headers? headers,
})

Convenient api over stream for bidi streaming calls.

Implementation

Stream<O> bidi<I extends Object, O extends Object>(
  Spec<I, O> spec,
  Stream<I> input, {
  void Function(Headers)? onHeader,
  void Function(Headers)? onTrailer,
  AbortSignal? signal,
  Headers? headers,
}) async* {
  final res = await t.stream(
    spec,
    input,
    CallOptions(headers: headers, signal: signal),
  );
  onHeader?.call(res.headers);
  yield* res.message;
  onTrailer?.call(res.trailers);
}