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
-5
View File
@@ -60,13 +60,11 @@ impl MultiDownloadProgress {
}
pub fn run(&mut self, mut terminal: DefaultTerminal) -> Result<()> {
// Start initial batch of downloads
self.start_next_batch();
loop {
terminal.draw(|frame| self.render(frame))?;
// Check for incoming downloads from background thread
while let Ok((download, receiver)) =
self.receiver_channel.try_recv()
{
@@ -96,12 +94,10 @@ impl MultiDownloadProgress {
}
}
// Start next batch after iteration completes
if need_start_next {
self.start_next_batch();
}
// Handle keyboard input
if poll(Duration::from_millis(100))?
&& let Event::Key(key) = event::read()?
{
@@ -118,7 +114,6 @@ impl MultiDownloadProgress {
}
fn start_next_batch(&mut self) {
// Start queued downloads up to max_concurrent limit
for download_entry in &self.downloads {
if self.active_count >= self.max_concurrent {
break;