diff --git a/src/geodb.rs b/src/geodb.rs index 4ea7d81..8ef6aec 100644 --- a/src/geodb.rs +++ b/src/geodb.rs @@ -60,8 +60,7 @@ async fn save_etag( .wrap_err("failed to get GeoDB ETag path")?; tokio::fs::write(&etag_file, etag).await.wrap_err_with(move || { format!("failed to write to file {}", etag_file.display()) - })?; - Ok(()) + }) } async fn save_geodb( @@ -137,10 +136,8 @@ pub async fn download_geodb( } if let Some(etag_value) = etag { - save_etag(etag_value).await.wrap_err("failed to save GeoDB ETag")?; + save_etag(etag_value).await.wrap_err("failed to save GeoDB ETag") } else { - remove_etag().await.wrap_err("failed to remove GeoDB ETag")?; + remove_etag().await.wrap_err("failed to remove GeoDB ETag") } - - Ok(()) } diff --git a/src/main.rs b/src/main.rs index 4308d7c..3c25498 100644 --- a/src/main.rs +++ b/src/main.rs @@ -122,6 +122,5 @@ async fn main() -> color_eyre::Result<()> { log::info!("Thank you for using proxy-scraper-checker!"); tx.send(event::Event::App(event::AppEvent::Done))?; drop(tx); - ui_task.await??; - Ok(()) + ui_task.await? } diff --git a/src/parsers.rs b/src/parsers.rs index 7187616..9503699 100644 --- a/src/parsers.rs +++ b/src/parsers.rs @@ -16,5 +16,5 @@ pub fn parse_ipv4(s: &str) -> Option { IPV4_REGEX .captures(s) .unwrap() - .map(|captures| String::from(captures.name("host").unwrap().as_str())) + .map(|captures| captures.name("host").unwrap().as_str().to_owned()) } diff --git a/src/ui/tui.rs b/src/ui/tui.rs index 79f4268..ab72ed2 100644 --- a/src/ui/tui.rs +++ b/src/ui/tui.rs @@ -53,8 +53,10 @@ impl super::UI for Tui { tx: tokio::sync::mpsc::UnboundedSender, mut rx: tokio::sync::mpsc::UnboundedReceiver, ) -> color_eyre::Result<()> { - let tick_task = tokio::spawn(tick_event_listener(tx.clone())); - let crossterm_task = tokio::spawn(crossterm_event_listener(tx)); + let mut join_set = tokio::task::JoinSet::new(); + join_set.spawn(tick_event_listener(tx.clone())); + join_set.spawn(crossterm_event_listener(tx)); + let mut app_state = AppState::new(); let logger_state = TuiWidgetState::default(); while !matches!(app_state.mode, AppMode::Quit) { @@ -69,10 +71,9 @@ impl super::UI for Tui { } } drop(rx); - tick_task.await.wrap_err("failed to spawn tui tick task")??; - crossterm_task - .await - .wrap_err("failed to spawn tui crossterm task")??; + while let Some(task) = join_set.join_next().await { + task.wrap_err("failed to join event listener task")??; + } Ok(()) } }