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> and Streams, mainly because of conflicts with blanket impls (once you impl<T> X for T where T: TryInto<Vec<u8>> you cannot implement anything else for X 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 is chunked or not.
Interesting enough, I realized (thanks to cargo-semver-checks) that I needed to add the + RefUnwindSafe + UnwindSafe bounds to the BodyFn type alias to avoid a breaking change on ResponseTemplate.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
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.