diff --git a/core/src/identity/rsa.rs b/core/src/identity/rsa.rs index 4175732f..40a7ea6f 100644 --- a/core/src/identity/rsa.rs +++ b/core/src/identity/rsa.rs @@ -263,7 +263,7 @@ impl DerDecodable<'_> for Asn1SubjectPublicKey { ))); } - let pk_der: Vec = object.value().into_iter().skip(1).cloned().collect(); + let pk_der: Vec = object.value().iter().skip(1).cloned().collect(); // We don't parse pk_der further as an ASN.1 RsaPublicKey, since // we only need the DER encoding for `verify`. Ok(Self(PublicKey(pk_der))) diff --git a/core/src/peer_id.rs b/core/src/peer_id.rs index d9525831..d5e4e149 100644 --- a/core/src/peer_id.rs +++ b/core/src/peer_id.rs @@ -94,7 +94,7 @@ impl PeerId { /// In case the given [`Multiaddr`] ends with `/p2p/`, this function /// will return the encapsulated [`PeerId`], otherwise it will return `None`. pub fn try_from_multiaddr(address: &Multiaddr) -> Option { - address.iter().last().map_or(None, |p| match p { + address.iter().last().and_then(|p| match p { Protocol::P2p(hash) => PeerId::from_multihash(hash).ok(), _ => None, }) diff --git a/core/src/peer_record.rs b/core/src/peer_record.rs index dc1a3429..f86df68f 100644 --- a/core/src/peer_record.rs +++ b/core/src/peer_record.rs @@ -89,7 +89,7 @@ impl PeerRecord { }; let envelope = SignedEnvelope::new( - &key, + key, String::from(DOMAIN_SEP), PAYLOAD_TYPE.as_bytes().to_vec(), payload, diff --git a/core/src/transport/memory.rs b/core/src/transport/memory.rs index 2685ef72..02e21e7e 100644 --- a/core/src/transport/memory.rs +++ b/core/src/transport/memory.rs @@ -358,9 +358,9 @@ impl Sink for Chan { } } -impl> Into>> for Chan { - fn into(self) -> RwStreamSink> { - RwStreamSink::new(self) +impl> From> for RwStreamSink> { + fn from(channel: Chan) -> RwStreamSink> { + RwStreamSink::new(channel) } } diff --git a/muxers/mplex/src/config.rs b/muxers/mplex/src/config.rs index b6166f82..587a4230 100644 --- a/muxers/mplex/src/config.rs +++ b/muxers/mplex/src/config.rs @@ -21,7 +21,7 @@ use crate::codec::MAX_FRAME_SIZE; use std::cmp; -pub(crate) const DEFAULT_MPLEX_PROTOCOL_NAME: &'static [u8] = b"/mplex/6.7.0"; +pub(crate) const DEFAULT_MPLEX_PROTOCOL_NAME: &[u8] = b"/mplex/6.7.0"; /// Configuration for the multiplexer. #[derive(Debug, Clone)] diff --git a/muxers/mplex/src/io.rs b/muxers/mplex/src/io.rs index ec782439..bbb11943 100644 --- a/muxers/mplex/src/io.rs +++ b/muxers/mplex/src/io.rs @@ -810,10 +810,10 @@ where /// Checks whether a substream is open for reading. fn can_read(&self, id: &LocalStreamId) -> bool { - match self.substreams.get(id) { - Some(SubstreamState::Open { .. }) | Some(SubstreamState::SendClosed { .. }) => true, - _ => false, - } + matches!( + self.substreams.get(id), + Some(SubstreamState::Open { .. }) | Some(SubstreamState::SendClosed { .. }) + ) } /// Sends pending frames, without flushing. diff --git a/muxers/yamux/src/lib.rs b/muxers/yamux/src/lib.rs index 45c77486..2ce0b065 100644 --- a/muxers/yamux/src/lib.rs +++ b/muxers/yamux/src/lib.rs @@ -252,17 +252,19 @@ impl YamuxConfig { /// Creates a new `YamuxConfig` in client mode, regardless of whether /// it will be used for an inbound or outbound upgrade. pub fn client() -> Self { - let mut cfg = Self::default(); - cfg.mode = Some(yamux::Mode::Client); - cfg + Self { + mode: Some(yamux::Mode::Client), + ..Default::default() + } } /// Creates a new `YamuxConfig` in server mode, regardless of whether /// it will be used for an inbound or outbound upgrade. pub fn server() -> Self { - let mut cfg = Self::default(); - cfg.mode = Some(yamux::Mode::Server); - cfg + Self { + mode: Some(yamux::Mode::Server), + ..Default::default() + } } /// Sets the size (in bytes) of the receive window per substream. diff --git a/swarm/src/behaviour/either.rs b/swarm/src/behaviour/either.rs index 6d837105..479534f6 100644 --- a/swarm/src/behaviour/either.rs +++ b/swarm/src/behaviour/either.rs @@ -227,11 +227,11 @@ where ) -> Poll> { let event = match self { Either::Left(behaviour) => futures::ready!(behaviour.poll(cx, params)) - .map_out(|e| Either::Left(e)) - .map_handler_and_in(|h| IntoEitherHandler::Left(h), |e| Either::Left(e)), + .map_out(Either::Left) + .map_handler_and_in(IntoEitherHandler::Left, Either::Left), Either::Right(behaviour) => futures::ready!(behaviour.poll(cx, params)) - .map_out(|e| Either::Right(e)) - .map_handler_and_in(|h| IntoEitherHandler::Right(h), |e| Either::Right(e)), + .map_out(Either::Right) + .map_handler_and_in(IntoEitherHandler::Right, Either::Right), }; Poll::Ready(event) diff --git a/swarm/src/connection/pool/concurrent_dial.rs b/swarm/src/connection/pool/concurrent_dial.rs index 8f607ac7..5ba71f54 100644 --- a/swarm/src/connection/pool/concurrent_dial.rs +++ b/swarm/src/connection/pool/concurrent_dial.rs @@ -60,7 +60,7 @@ where let mut pending_dials = pending_dials.into_iter(); let dials = FuturesUnordered::new(); - while let Some(dial) = pending_dials.next() { + for dial in pending_dials.by_ref() { dials.push(dial); if dials.len() == concurrency_factor.get() as usize { break; @@ -95,7 +95,7 @@ where loop { match ready!(self.dials.poll_next_unpin(cx)) { Some((addr, Ok(output))) => { - let errors = std::mem::replace(&mut self.errors, vec![]); + let errors = std::mem::take(&mut self.errors); return Poll::Ready(Ok((addr, output, errors))); } Some((addr, Err(e))) => { @@ -105,7 +105,7 @@ where } } None => { - return Poll::Ready(Err(std::mem::replace(&mut self.errors, vec![]))); + return Poll::Ready(Err(std::mem::take(&mut self.errors))); } } } diff --git a/swarm/src/lib.rs b/swarm/src/lib.rs index 0242f2b2..4c3a16fe 100644 --- a/swarm/src/lib.rs +++ b/swarm/src/lib.rs @@ -514,7 +514,7 @@ where }; match dial { Ok(fut) => fut - .map(|r| (address, r.map_err(|e| TransportError::Other(e)))) + .map(|r| (address, r.map_err(TransportError::Other))) .boxed(), Err(err) => futures::future::ready((address, Err(err))).boxed(), } @@ -538,7 +538,7 @@ where Err((connection_limit, handler)) => { let error = DialError::ConnectionLimit(connection_limit); self.behaviour.inject_dial_failure(None, handler, &error); - return Err(error); + Err(error) } } } @@ -800,7 +800,7 @@ where .expect("n + 1 is always non-zero; qed"); let non_banned_established = other_established_connection_ids .into_iter() - .filter(|conn_id| !this.banned_peer_connections.contains(&conn_id)) + .filter(|conn_id| !this.banned_peer_connections.contains(conn_id)) .count(); log::debug!( @@ -896,7 +896,7 @@ where if conn_was_reported { let remaining_non_banned = remaining_established_connection_ids .into_iter() - .filter(|conn_id| !this.banned_peer_connections.contains(&conn_id)) + .filter(|conn_id| !this.banned_peer_connections.contains(conn_id)) .count(); this.behaviour.inject_connection_closed( &peer_id, diff --git a/transports/dns/src/lib.rs b/transports/dns/src/lib.rs index 7bdc9552..c5b60572 100644 --- a/transports/dns/src/lib.rs +++ b/transports/dns/src/lib.rs @@ -264,12 +264,14 @@ where // dialing attempts as soon as there is another fully resolved // address. while let Some(addr) = unresolved.pop() { - if let Some((i, name)) = addr.iter().enumerate().find(|(_, p)| match p { - Protocol::Dns(_) - | Protocol::Dns4(_) - | Protocol::Dns6(_) - | Protocol::Dnsaddr(_) => true, - _ => false, + if let Some((i, name)) = addr.iter().enumerate().find(|(_, p)| { + matches!( + p, + Protocol::Dns(_) + | Protocol::Dns4(_) + | Protocol::Dns6(_) + | Protocol::Dnsaddr(_) + ) }) { if dns_lookups == MAX_DNS_LOOKUPS { log::debug!("Too many DNS lookups. Dropping unresolved {}.", addr); diff --git a/transports/noise/src/protocol/x25519.rs b/transports/noise/src/protocol/x25519.rs index 5268da24..bc22dcc7 100644 --- a/transports/noise/src/protocol/x25519.rs +++ b/transports/noise/src/protocol/x25519.rs @@ -180,6 +180,12 @@ impl Keypair { } } +impl Default for Keypair { + fn default() -> Self { + Self::new() + } +} + /// Promote a X25519 secret key into a keypair. impl From> for Keypair { fn from(secret: SecretKey) -> Keypair { diff --git a/transports/noise/src/protocol/x25519_spec.rs b/transports/noise/src/protocol/x25519_spec.rs index 449831d8..b0ae73d9 100644 --- a/transports/noise/src/protocol/x25519_spec.rs +++ b/transports/noise/src/protocol/x25519_spec.rs @@ -61,6 +61,12 @@ impl Keypair { } } +impl Default for Keypair { + fn default() -> Self { + Self::new() + } +} + /// Promote a X25519 secret key into a keypair. impl From> for Keypair { fn from(secret: SecretKey) -> Keypair { diff --git a/transports/tcp/src/lib.rs b/transports/tcp/src/lib.rs index cacf13bb..6e6eb771 100644 --- a/transports/tcp/src/lib.rs +++ b/transports/tcp/src/lib.rs @@ -328,6 +328,12 @@ where } } +impl Default for GenTcpConfig { + fn default() -> Self { + Self::new() + } +} + impl Transport for GenTcpConfig where T: Provider + Send + 'static, diff --git a/transports/uds/src/lib.rs b/transports/uds/src/lib.rs index 6dd08523..472fd1c6 100644 --- a/transports/uds/src/lib.rs +++ b/transports/uds/src/lib.rs @@ -63,6 +63,12 @@ impl $uds_config { } } +impl Default for $uds_config { + fn default() -> Self { + Self::new() + } +} + impl Transport for $uds_config { type Output = $unix_stream; type Error = io::Error; diff --git a/transports/wasm-ext/src/lib.rs b/transports/wasm-ext/src/lib.rs index 44f3dcbd..64deb877 100644 --- a/transports/wasm-ext/src/lib.rs +++ b/transports/wasm-ext/src/lib.rs @@ -318,15 +318,15 @@ impl Stream for Listen { }; if let Some(addrs) = event.new_addrs() { - for addr in addrs.into_iter() { - let addr = js_value_to_addr(&addr)?; + for addr in addrs.iter() { + let addr = js_value_to_addr(addr)?; self.pending_events .push_back(ListenerEvent::NewAddress(addr)); } } if let Some(upgrades) = event.new_connections() { - for upgrade in upgrades.into_iter().cloned() { + for upgrade in upgrades.iter().cloned() { let upgrade: ffi::ConnectionEvent = upgrade.into(); self.pending_events.push_back(ListenerEvent::Upgrade { local_addr: upgrade.local_addr().parse()?, @@ -337,8 +337,8 @@ impl Stream for Listen { } if let Some(addrs) = event.expired_addrs() { - for addr in addrs.into_iter() { - match js_value_to_addr(&addr) { + for addr in addrs.iter() { + match js_value_to_addr(addr) { Ok(addr) => self .pending_events .push_back(ListenerEvent::NewAddress(addr)),