Add use_generic_streaming_requests
option to make testing server impls easier
#2115
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Currently, testing the server trait implementations of client-streaming methods (i.e. requests that receive a stream) is quite difficult, and requires jumping through hoops in order to construct a
Streaming
object (see #462 for one way of doing it).Solution
Adds a codegen option that makes the server trait go from this:
to this:
Since
Request<Streaming<Message>>
implsIntoStreamingRequest<Message = Result<Message, Status>>
, the grpc server can continue invoking these handlers in the same way, but it also allows any object implementingStream<Item = Result<Message, Status>>
to be used.This makes testing much easier.