* Move lib.rs to protocol.rs
* Rewrite floodsub for ProtocolsHandler
* Add a FloodsubBehaviour
* Fix closing floodsub after a message
* Address concern
* Make it conform to the protocol
* Make it really conformant
* Address concerns
* Add ProtocolsHandlerSelect
* Add a custom derive for NetworkBehaviour
* Remove 2018 edition
* More work
* Update the tests and work
* Allow ignored fields
* More fixes
* Give access to everything in the poll method
* Add ProtocolsHandler trait
* Reexport symbols
* Add a note about shutting down
* Add a PeriodicPingHandler and a PingListenHandler
* Fix core doctest
* Add tolerating not supported
* Fix concerns
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Tests for HandledNode
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function
* Untangle the code for old shutdown test from the new tests
Add HandlerState and use it in TestBuilder
Shorter test names
* WIP – tests pass
* Use a newtype to lighten up the function signatures a bit
Test NotReady case
* Cleanup Event enum
Track events as they reach the Handler
Describe complex test logic
* Assert on the event trace
* More tests for poll()
* Switch to using usize as the OutboundOpenInfo so we can assert on event contents
More tests for poll()
* whitespace
* Move Handler related code to dummy_handler
* Fixes broken test after upstream changes
* Clarify the behaviour of is_shutting_down
* Fix broken test
* Fix tests after recent changes on master
* no tabs
* whitespace
* rustfmt
* Add public HandledNode.handler() method that returns a ref to the NodeHandler
Don't use private members in tests
* Add HandledNode.handler_mut that returns a mutable ref to the NodeHandler
* Remove debugging stmts
* Fix parse error
* remove tokio_current_thread tests
* Review changes:
Removed newline
Moved uds tokio test crate to top to avoid self and keep with convention of other test crates
Removed sleep from uds test and block until all futures are completed.
Add shutdown functionality to `NodeStream`.
Add `NodeStream::shutdown` to allow triggering the shutdown process,
and `NodeStream::poll_shutdown` as the internal way to drive any
potential shutdown to completion.
mplex gets a new flag `is_shutdown` to keep track of when `shutdown` has
been called. We need to make certain that after the shutdown no more
`Sink::poll_complete` or `Sink::start_send` calls are being made which
may result in a panic.
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`.
* Add unit tests for core::nodes::NodeStream
* Move DummyMuxer to core/tests
* Address grumbles
* Impl Debug for SubstreamRef<P>
* Add test for poll()
* Don't need to open a substream
* pretty printer test
* More tests for NodeStream poll()
* ListenerStream unit tests: transport() and listeners()
* Tests for nodes/listeners.rs
* Add a few tests to help illustrate the "drowning" behaviour of busy listeners
* Address grumbles
* Remove non-project specific stuff
* Address grumbles
* Prefer freestanding function