download a stream of bytes, not single byte #123
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.
Hi!
I noticed that fact that your download_streaming APIs return an
impl Stream<Item = crate::Result<u8>>
which is very inefficient.create::Result<u8>
has size 72 on my machine (64bit arm), so for every byte copied, we need to pass 72 bytes around. But even if it wasimpl Stream<Item = u8>
, it would still be inefficient. Such streams always work on slices of bytes (e.g. see the Read or AsyncRead traits) or here, it's the easiest and most idiomatic to just return a stream ofBytes
.So I deprecated
download_streamed
and addeddownload_bytes_stream
.Hope you like it :)
Cheers,
Kosta