diff --git a/swarm/CHANGELOG.md b/swarm/CHANGELOG.md index e97c6061909..27b4c5bcc95 100644 --- a/swarm/CHANGELOG.md +++ b/swarm/CHANGELOG.md @@ -1,7 +1,9 @@ # 0.35.0 [unreleased] +- Add impl `IntoIterator` for `MultiHandler`. See [PR 2572]. - Remove `Send` bound from `NetworkBehaviour`. See [PR 2535]. +[PR 2572]: https://github.com/libp2p/rust-libp2p/pull/2572/ [PR 2535]: https://github.com/libp2p/rust-libp2p/pull/2535/ # 0.34.0 [2022-02-22] diff --git a/swarm/src/handler/multi.rs b/swarm/src/handler/multi.rs index 7530c35a77a..f7e4d7ed1b4 100644 --- a/swarm/src/handler/multi.rs +++ b/swarm/src/handler/multi.rs @@ -319,6 +319,16 @@ where } } +/// Split [`MultiHandler`] into parts. +impl IntoIterator for MultiHandler { + type Item = ::Item; + type IntoIter = std::collections::hash_map::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.handlers.into_iter() + } +} + /// A [`IntoConnectionHandler`] for multiple other `IntoConnectionHandler`s. #[derive(Clone)] pub struct IntoMultiHandler {