Remove intermediate Service struct #442
Merged
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.
This implements
HttpService
directly onServer
removing the need for the intermediateService
struct. This allows us to removeinto_http_service
and theserver
submodule making e.g. nesting apps really easy.Examples
Future directions
In http-rs/http-types#94 we've introduced the (experimental) Client and Server traits. The hope is that these can replace
http-client
andhttp-service
including on Tide directly. Because these traits don't carry a connection this would allow us to bypasshttp_service_mock::make_server
andhttp_mock_service::TestBackend::simulate
calls entirely by simply callingapp.recv_req
instead, making it really easy to test applications: