From 970bdb86529cdb273f6ff5caa9ef31fa4da55cf2 Mon Sep 17 00:00:00 2001 From: Ivan Date: Fri, 2 Aug 2024 13:29:20 +0200 Subject: [PATCH] Refactor - use better style --- crates/librqbit/src/api.rs | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/crates/librqbit/src/api.rs b/crates/librqbit/src/api.rs index 97af6d5..78ed72b 100644 --- a/crates/librqbit/src/api.rs +++ b/crates/librqbit/src/api.rs @@ -331,23 +331,18 @@ fn torrent_file_mime_type( info: &TorrentMetaV1Info, file_idx: usize, ) -> Result<&'static str> { - let file_name = info - .iter_filenames_and_lengths()? - .enumerate() - .find_map(|(idx, (f, _))| { - if idx == file_idx { - f.iter_components() - .last() - .and_then(|r| r.ok()) - .and_then(|s| mime_guess::from_path(s).first_raw()) - } else { - None - } - }); - file_name.ok_or_else(|| { - ApiError::new_from_text( - StatusCode::INTERNAL_SERVER_ERROR, - "cannot determine mime type for file", - ) - }) + info.iter_filenames_and_lengths()? + .nth(file_idx) + .and_then(|(f, _)| { + f.iter_components() + .last() + .and_then(|r| r.ok()) + .and_then(|s| mime_guess::from_path(s).first_raw()) + }) + .ok_or_else(|| { + ApiError::new_from_text( + StatusCode::INTERNAL_SERVER_ERROR, + "cannot determine mime type for file", + ) + }) }