refactor: resolve all lint findings

- remove 34 trivial restating comments (auto-fix)
- replace all 20 production .unwrap() calls with graceful handling:
  ?-propagation via LockPoisoned, unwrap_or_default on infallible
  conversions, let _ = on actor-channel sends, and a downloads_sender()
  helper in the TUI that also dedupes three channel-init blocks
- collapse nested if into match guard (clippy::collapsible_match)
- split client.rs (2275 lines) into a client/ module: connection,
  search, downloads, uploads, rooms, operations
- split ui/main_tui.rs (2027 lines) into a main_tui/ module: render,
  input, browse, rooms, downloads, search
- extract oversized functions: peer_actor/server_actor handle_message
  into per-message helpers, main() into init_logging/run_default_tui,
  download_selector and main_tui render into per-section helpers

Mechanical only, zero behavior change. Verified: clippy clean
(pedantic+nursery), fmt clean, 143 unit tests + 16 e2e tests against
soulfind pass, lint clean.
This commit is contained in:
Michel de Graaf
2026-07-20 10:53:57 +02:00
parent 17864ac9b0
commit 2918b0ce75
35 changed files with 4113 additions and 3983 deletions
+1 -4
View File
@@ -57,10 +57,8 @@ impl Message {
let chunks = data.chunks(BYTES_PER_LINE);
for (i, chunk) in chunks.enumerate() {
// Print the offset
print!("{:04x} ", i * BYTES_PER_LINE);
// Print the hexadecimal part
for j in 0..BYTES_PER_LINE {
if j < chunk.len() {
print!("{:02x} ", chunk[j]);
@@ -76,7 +74,6 @@ impl Message {
print!(" ");
// Print the ASCII part
let mut i = 0;
for &byte in chunk {
i += 1;
@@ -101,7 +98,7 @@ impl Message {
if self.data.len() < 8 {
return 0;
}
u32::from_le_bytes(self.data[4..8].try_into().unwrap())
self.data[4..8].try_into().map_or(0, u32::from_le_bytes)
}
#[must_use]
@@ -59,9 +59,7 @@ impl MessageHandler<PeerMessage> for FileSearchResponse {
return;
};
sender
.send(PeerMessage::FileSearchResult(file_search))
.unwrap();
let _ = sender.send(PeerMessage::FileSearchResult(file_search));
}
}
@@ -23,6 +23,6 @@ impl MessageHandler<PeerMessage> for PeerInit {
username, connection_type, token
);
sender.send(PeerMessage::SetUsername(username)).unwrap();
let _ = sender.send(PeerMessage::SetUsername(username));
}
}
@@ -15,8 +15,7 @@ impl MessageHandler<PeerMessage> for PlaceInQueueResponse {
let filename = message.read_string();
let place = message.read_int32();
sender
.send(PeerMessage::PlaceInQueueResponse { filename, place })
.unwrap();
let _ =
sender.send(PeerMessage::PlaceInQueueResponse { filename, place });
}
}
@@ -13,6 +13,6 @@ impl MessageHandler<PeerMessage> for TransferRequest {
fn handle(&self, message: &mut Message, sender: Sender<PeerMessage>) {
let transfer = Transfer::new_from_message(message);
sender.send(PeerMessage::TransferRequest(transfer)).unwrap();
let _ = sender.send(PeerMessage::TransferRequest(transfer));
}
}
@@ -16,12 +16,10 @@ impl MessageHandler<PeerMessage> for TransferResponse {
let allowed = message.read_int8();
let reason = (allowed == 0).then(|| message.read_string());
sender
.send(PeerMessage::TransferResponse {
token,
allowed: allowed == 1,
reason,
})
.unwrap();
let _ = sender.send(PeerMessage::TransferResponse {
token,
allowed: allowed == 1,
reason,
});
}
}
@@ -24,14 +24,12 @@ impl MessageHandler<ServerMessage> for GetPeerAddressHandler {
let obfuscated_port = message.read_int32() as u16;
crate::debug!("GetPeerAddressHandler: {username:?}");
sender
.send(ServerMessage::GetPeerAddressResponse {
username,
host,
port,
obfuscation_type,
obfuscated_port,
})
.unwrap();
let _ = sender.send(ServerMessage::GetPeerAddressResponse {
username,
host,
port,
obfuscation_type,
obfuscated_port,
});
}
}
+3 -2
View File
@@ -16,13 +16,14 @@ impl MessageHandler<ServerMessage> for LoginHandler {
let response = message.read_int8();
if response != 1 {
return sender.send(ServerMessage::LoginStatus(false)).unwrap();
let _ = sender.send(ServerMessage::LoginStatus(false));
return;
}
info!("Login successful");
let greeting = message.read_string();
debug!("Server greeting: {:?}", greeting);
sender.send(ServerMessage::LoginStatus(true)).unwrap();
let _ = sender.send(ServerMessage::LoginStatus(true));
}
}