diff --git a/lib/src/client/common.dart b/lib/src/client/common.dart index 5060fc18..b4b59af9 100644 --- a/lib/src/client/common.dart +++ b/lib/src/client/common.dart @@ -42,9 +42,7 @@ abstract class Response { } /// A gRPC response producing a single value. -class ResponseFuture extends DelegatingFuture - with _ResponseMixin { - @override +class ResponseFuture extends DelegatingFuture implements Response { final ClientCall _call; static R _ensureOnlyOneResponse(R? previous, R element) { @@ -60,24 +58,30 @@ class ResponseFuture extends DelegatingFuture } ResponseFuture(this._call) - : super(_call.response - .fold(null, _ensureOnlyOneResponse) - .then(_ensureOneResponse)); + : super( + _call.response + .fold(null, _ensureOnlyOneResponse) + .then(_ensureOneResponse), + ); + + @override + Future> get headers => _call.headers; + + @override + Future> get trailers => _call.trailers; + + @override + Future cancel() => _call.cancel(); } /// A gRPC response producing a stream of values. -class ResponseStream extends StreamView with _ResponseMixin { - @override +class ResponseStream extends StreamView implements Response { final ClientCall _call; ResponseStream(this._call) : super(_call.response); @override ResponseFuture get single => ResponseFuture(_call); -} - -mixin _ResponseMixin implements Response { - ClientCall get _call; @override Future> get headers => _call.headers;