Description
This crate contains the trait MultipartWrite, assorted implementations, and combinators.
A MultipartWrite is a similar interface to Sink, except that writing an item or completing the
write both return values.
Here is a conceptual example of a MultipartWrite.
Motivation
Sink is a useful API, but it is just that--a sink. The end of a stream.
It's useful to have the backpressure mechanism that poll_ready/start_send enables, and it's nice
to have the flexibility that the shape of it provides in what kinds of things you can forward to it,
but it would be nice to use as an intermediate stage in a stream transformation, like a more powerful
StreamExt::buffered.
The idea for MultipartWrite is to:
- Have the same desirable properies as
Sink. - Be able to be inserted at more locations in a stream computation.
- Be useful in more cases by having a value returned when starting a write.
- Be able to transform a stream into another stream, which is really just a more specific phrasing of 3.