From fbc6d16bc9afeda0c11385901f07bc6fd119a07e Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Sun, 26 Jul 2026 20:37:03 +0000 Subject: [PATCH] Replace unwraps with expect, explaining the situation --- src/api.rs | 10 ++++++++-- src/cmd/auth.rs | 4 +++- src/file_output.rs | 8 ++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/api.rs b/src/api.rs index f67b060..92051d8 100644 --- a/src/api.rs +++ b/src/api.rs @@ -103,7 +103,10 @@ pub async fn create_recording( let legacy_fallback = (response.status().as_u16() == 413) .then(|| "The recording exceeds the server-configured size limit".to_owned()); - let server_hostname = server_url.host().unwrap().to_string(); + let server_hostname = server_url + .host() + .expect("host presence is checked in parse_server_url") + .to_string(); let response = handle_response_status(response, &server_hostname, legacy_fallback).await?; Ok(response.json::().await?) @@ -236,7 +239,10 @@ async fn parse_stream_response( response: Response, server_url: &Url, ) -> Result { - let server_hostname = server_url.host().unwrap().to_string(); + let server_hostname = server_url + .host() + .expect("host presence is checked in parse_server_url") + .to_string(); let legacy_fallback = match response.status().as_u16() { 404 | 422 => Some(format!("{server_hostname} doesn't support streaming")), diff --git a/src/cmd/auth.rs b/src/cmd/auth.rs index a652c86..0b3f1d9 100644 --- a/src/cmd/auth.rs +++ b/src/cmd/auth.rs @@ -8,7 +8,9 @@ impl cli::Auth { pub fn run(self) -> Result<()> { let mut config = Config::new(self.server_url.clone())?; let server_url = config.get_server_url()?; - let server_hostname = server_url.host().unwrap(); + let server_hostname = server_url + .host() + .expect("host presence is checked in parse_server_url"); let auth_url = api::get_auth_url(&mut config)?; println!("Open the following URL in a web browser to authenticate this CLI with your {server_hostname} user account:\n"); diff --git a/src/file_output.rs b/src/file_output.rs index 376bc7f..554edcc 100644 --- a/src/file_output.rs +++ b/src/file_output.rs @@ -200,7 +200,11 @@ async fn send_command( } fn make_header(metadata: &Metadata) -> asciicast::Header { - let timestamp = metadata.time.duration_since(UNIX_EPOCH).unwrap().as_secs(); + let timestamp = metadata + .time + .duration_since(UNIX_EPOCH) + .ok() + .map(|d| d.as_secs()); asciicast::Header { term_cols: metadata.term.size.0, @@ -208,7 +212,7 @@ fn make_header(metadata: &Metadata) -> asciicast::Header { term_type: metadata.term.type_.clone(), term_version: metadata.term.version.clone(), term_theme: metadata.term.theme.clone(), - timestamp: Some(timestamp), + timestamp, idle_time_limit: metadata.idle_time_limit, command: metadata.command.clone(), title: metadata.title.clone(),