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.
Description of changes:
Add support to streaming body, hopefully without any breaking change (according to cargo-semver-checks, there aren't).
The rationale is that it is useful to simulate delays or errors while receiving the body during tests.
I tried to unify the stream APIs with the current ones, but unfortunately I have been not been use a trait compatible with both current
TryInto<Vec<u8>/String>
andStream
s, mainly because of conflicts with blanket impls (once youimpl<T> X for T where T: TryInto<Vec<u8>>
you cannot implement anything else forX
AFAIK).I also realized that we have less controls on errors from body stream than I expected (see
tests/mocks.rs:181-182
), but the feature should be useful anyway.The added API includes the possibility of specifying the length of the body, because it influences whether the
Transfer-Encoding
header ischunked
or not.Interesting enough, I realized (thanks to
cargo-semver-checks
) that I needed to add the+ RefUnwindSafe + UnwindSafe
bounds to theBodyFn
type alias to avoid a breaking change onResponseTemplate
.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.