This issue tracks the redesign of the `StreamMuxer` trait which was originally started in #2648. The primary goals are: - Emitting substreams which implement `AsyncRead` + `AsyncWrite` - Use `&mut self` for the `StreamMuxer` (This may extend to `Pin<&mut Self>`) ## PRs related to this issue - [x] https://github.com/libp2p/rust-libp2p/pull/2664 - [x] https://github.com/libp2p/rust-libp2p/pull/2685 - [x] https://github.com/libp2p/rust-libp2p/pull/2669 - [x] https://github.com/libp2p/rust-libp2p/pull/2665 - [x] https://github.com/libp2p/rust-libp2p/pull/2666 - [x] https://github.com/libp2p/rust-libp2p/pull/2667 - [x] https://github.com/libp2p/rust-libp2p/pull/2668 - [x] https://github.com/libp2p/rust-libp2p/pull/2677 - [x] https://github.com/libp2p/rust-yamux/pull/135 - [x] https://github.com/libp2p/rust-libp2p/pull/2688 - [x] https://github.com/libp2p/rust-libp2p/pull/2691 - [x] https://github.com/libp2p/rust-libp2p/pull/2703 - [x] https://github.com/libp2p/rust-libp2p/pull/2706 - [x] https://github.com/libp2p/rust-libp2p/pull/2707 - [x] https://github.com/libp2p/rust-libp2p/pull/2710 - [x] https://github.com/libp2p/rust-libp2p/pull/2723 - [x] https://github.com/libp2p/rust-libp2p/pull/2724 - [x] https://github.com/libp2p/rust-libp2p/pull/2763 - [x] https://github.com/libp2p/rust-libp2p/pull/2764 - [x] https://github.com/libp2p/rust-libp2p/pull/2776 - [x] https://github.com/libp2p/rust-libp2p/pull/2775 - [x] https://github.com/libp2p/rust-libp2p/pull/2765 - [x] https://github.com/libp2p/rust-libp2p/pull/2797 - [ ] Rename `StreamMuxerEvent` to `Event`
This issue tracks the redesign of the
StreamMuxertrait which was originally started in #2648.The primary goals are:
AsyncRead+AsyncWrite&mut selffor theStreamMuxer(This may extend toPin<&mut Self>)PRs related to this issue
StreamMuxer::Errorto io::Error #2664Pollimport #2685StreamMuxer::flush_allfunction #2669closetopoll_close#2666Syncbounds #2667StreamMuxerBox#2668Yamux::closeto use?#2677ConnectionErrorin public API withio::Errorrust-yamux#135StreamMuxerEvent::map_inbound_stream#2691boxedmodule #2703AsyncReadandAsyncWriteforSubstream#2706StreamMuxer::Substreamto implementAsync{Read,Write}#2707Into<io::Error>bound onStreamMuxerwithstd::error::Error#2710StreamMuxerEvent::AddressChangevariant #2723StreamMuxerinterface topoll_{inbound,outbound,address_change,close}#2724Arc#2763Unpinrequirement fromStreamMuxer::Substream#2776Syncrequirement forStreamMuxeronStreamMuxerBox#2775StreamMuxertakePin<&mut Self>#2765StreamMuxer::poll_address_changetopoll#2797StreamMuxerEventtoEvent