mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-07-31 08:51:57 +00:00
Update the `StreamMuxer` trait. - `read_substream`, `write_substream` and `flush_substream` now return `Poll` instead of `Result`. - A new `Shutdown` enum allows for half-closing of substreams and is used in `shutdown_substream`. - `close_inbound` and `close_outbound` have been merged into `shutdown` which takes a `Shutdown` parameter to allow closing only one direction. - Add a new `flush_all` method to allow flushing after a series of actions (e.g. multiple `shutdown_substream`). W.r.t. flushing the general idea is that normal use drains buffers over time. Shutting down a substream does not imply flushing, so can be followed by `flush_substream` or (if multiple substreams are to be shut down) a single `flush_all`. Shutting down the muxer itself proceeds likewise, i.e. `shutdown` followed by `flush_all`.