Skip to content

Commit e151ecb

Browse files
authored
chore: activate clippy::manual_let_else lint
Refactor let else usage to align w/ idiomatic usage of Rust by activating `clippy::manual_let_else` lint, and resolving all the warning messages. Resolves: #4741. Pull-Request: #4770.
1 parent bfeb8c9 commit e151ecb

File tree

31 files changed

+139
-232
lines changed

31 files changed

+139
-232
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ clippy.used_underscore_binding = "warn"
135135
clippy.pedantic = "allow"
136136
clippy.type_complexity = "allow"
137137
clippy.unnecessary_wraps = "warn"
138+
clippy.manual_let_else = "warn"
138139
clippy.dbg_macro = "warn"
139140

140141
[workspace.metadata.release]

core/src/transport.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -401,16 +401,16 @@ impl<TUpgr, TErr> TransportEvent<TUpgr, TErr> {
401401
/// Returns `None` if the event is not actually an incoming connection,
402402
/// otherwise the upgrade and the remote address.
403403
pub fn into_incoming(self) -> Option<(TUpgr, Multiaddr)> {
404-
if let TransportEvent::Incoming {
404+
let TransportEvent::Incoming {
405405
upgrade,
406406
send_back_addr,
407407
..
408408
} = self
409-
{
410-
Some((upgrade, send_back_addr))
411-
} else {
412-
None
413-
}
409+
else {
410+
return None;
411+
};
412+
413+
Some((upgrade, send_back_addr))
414414
}
415415

416416
/// Returns `true` if this is a [`TransportEvent::NewAddress`].

core/src/transport/memory.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ impl Hub {
6262
port
6363
} else {
6464
loop {
65-
let port = match NonZeroU64::new(rand::random()) {
66-
Some(p) => p,
67-
None => continue,
65+
let Some(port) = NonZeroU64::new(rand::random()) else {
66+
continue;
6867
};
6968
if !hub.contains_key(&port) {
7069
break port;
@@ -184,16 +183,12 @@ impl Transport for MemoryTransport {
184183
id: ListenerId,
185184
addr: Multiaddr,
186185
) -> Result<(), TransportError<Self::Error>> {
187-
let port = if let Ok(port) = parse_memory_addr(&addr) {
188-
port
189-
} else {
190-
return Err(TransportError::MultiaddrNotSupported(addr));
191-
};
186+
let port =
187+
parse_memory_addr(&addr).map_err(|_| TransportError::MultiaddrNotSupported(addr))?;
192188

193-
let (rx, port) = match HUB.register_port(port) {
194-
Some((rx, port)) => (rx, port),
195-
None => return Err(TransportError::Other(MemoryTransportError::Unreachable)),
196-
};
189+
let (rx, port) = HUB
190+
.register_port(port)
191+
.ok_or(TransportError::Other(MemoryTransportError::Unreachable))?;
197192

198193
let listener = Listener {
199194
id,

core/tests/transport_upgrade.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ fn upgrade_pipeline() {
110110

111111
let server = async move {
112112
loop {
113-
let (upgrade, _send_back_addr) =
114-
match listener_transport.select_next_some().await.into_incoming() {
115-
Some(u) => u,
116-
None => continue,
117-
};
113+
let Some((upgrade, _send_back_addr)) =
114+
listener_transport.select_next_some().await.into_incoming()
115+
else {
116+
continue;
117+
};
118118
let (peer, _mplex) = upgrade.await.unwrap();
119119
assert_eq!(peer, dialer_id);
120120
}

examples/browser-webrtc/src/main.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,8 @@ struct StaticFiles;
9292

9393
/// Serve the Multiaddr we are listening on and the host files.
9494
pub(crate) async fn serve(libp2p_transport: Multiaddr) {
95-
let listen_addr = match libp2p_transport.iter().next() {
96-
Some(Protocol::Ip4(addr)) => addr,
97-
_ => panic!("Expected 1st protocol to be IP4"),
95+
let Some(Protocol::Ip4(listen_addr)) = libp2p_transport.iter().next() else {
96+
panic!("Expected 1st protocol to be IP4")
9897
};
9998

10099
let server = Router::new()

examples/file-sharing/src/main.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
6262

6363
// In case the user provided an address of a peer on the CLI, dial it.
6464
if let Some(addr) = opt.peer {
65-
let peer_id = match addr.iter().last() {
66-
Some(Protocol::P2p(peer_id)) => peer_id,
67-
_ => return Err("Expect peer multiaddr to contain peer ID.".into()),
65+
let Some(Protocol::P2p(peer_id)) = addr.iter().last() else {
66+
return Err("Expect peer multiaddr to contain peer ID.".into());
6867
};
6968
network_client
7069
.dial(peer_id, addr)

identity/src/ecdsa.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,8 @@ pub struct PublicKey(VerifyingKey);
151151
impl PublicKey {
152152
/// Verify an ECDSA signature on a message using the public key.
153153
pub fn verify(&self, msg: &[u8], sig: &[u8]) -> bool {
154-
let sig = match Signature::from_der(sig) {
155-
Ok(sig) => sig,
156-
Err(_) => return false,
154+
let Ok(sig) = Signature::from_der(sig) else {
155+
return false;
157156
};
158157
self.0.verify(msg, &sig).is_ok()
159158
}

misc/memory-connection-limits/src/lib.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,9 @@ impl Behaviour {
124124
return;
125125
}
126126

127-
let stats = match memory_stats::memory_stats() {
128-
Some(stats) => stats,
129-
None => {
130-
tracing::warn!("Failed to retrieve process memory stats");
131-
return;
132-
}
127+
let Some(stats) = memory_stats::memory_stats() else {
128+
tracing::warn!("Failed to retrieve process memory stats");
129+
return;
133130
};
134131

135132
self.last_refreshed = now;

muxers/mplex/src/io.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -912,9 +912,7 @@ where
912912
/// Fails the entire multiplexed stream if too many pending `Reset`
913913
/// frames accumulate when using [`MaxBufferBehaviour::ResetStream`].
914914
fn buffer(&mut self, id: LocalStreamId, data: Bytes) -> io::Result<()> {
915-
let state = if let Some(state) = self.substreams.get_mut(&id) {
916-
state
917-
} else {
915+
let Some(state) = self.substreams.get_mut(&id) else {
918916
tracing::trace!(
919917
connection=%self.id,
920918
substream=%id,
@@ -924,9 +922,7 @@ where
924922
return Ok(());
925923
};
926924

927-
let buf = if let Some(buf) = state.recv_buf_open() {
928-
buf
929-
} else {
925+
let Some(buf) = state.recv_buf_open() else {
930926
tracing::trace!(
931927
connection=%self.id,
932928
substream=%id,

protocols/autonat/src/behaviour/as_client.rs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -278,13 +278,9 @@ impl<'a> AsClient<'a> {
278278
tracing::debug!("Outbound dial-back request aborted: No dial-back addresses");
279279
return Err(OutboundProbeError::NoAddresses);
280280
}
281-
let server = match self.random_server() {
282-
Some(s) => s,
283-
None => {
284-
tracing::debug!("Outbound dial-back request aborted: No qualified server");
285-
return Err(OutboundProbeError::NoServer);
286-
}
287-
};
281+
282+
let server = self.random_server().ok_or(OutboundProbeError::NoServer)?;
283+
288284
let request_id = self.inner.send_request(
289285
&server,
290286
DialRequest {
@@ -301,11 +297,8 @@ impl<'a> AsClient<'a> {
301297
// Set the delay to the next probe based on the time of our last probe
302298
// and the specified delay.
303299
fn schedule_next_probe(&mut self, delay: Duration) {
304-
let last_probe_instant = match self.last_probe {
305-
Some(instant) => instant,
306-
None => {
307-
return;
308-
}
300+
let Some(last_probe_instant) = self.last_probe else {
301+
return;
309302
};
310303
let schedule_next = *last_probe_instant + delay;
311304
self.schedule_probe

0 commit comments

Comments
 (0)