summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqkzk <qu3nt1n@gmail.com>2023-02-21 21:49:14 +0100
committerqkzk <qu3nt1n@gmail.com>2023-02-21 21:49:14 +0100
commit53763ed13a28bbf3d7aefd732d5dd1737083017c (patch)
tree5d6b60880edf2f3168ba0f1f8e51a514adb7a8d4
parent23451dbf304b399235e412969aa7e675f89d73a8 (diff)
refactor list_file_zip and document it.
-rw-r--r--src/decompress.rs12
-rw-r--r--src/preview.rs4
2 files changed, 6 insertions, 10 deletions
diff --git a/src/decompress.rs b/src/decompress.rs
index a7d3575..d4bc001 100644
--- a/src/decompress.rs
+++ b/src/decompress.rs
@@ -49,17 +49,13 @@ pub fn decompress_xz(source: &Path) -> FmResult<()> {
Ok(())
}
+/// List files contained in a ZIP file.
+/// Will return an error if the ZIP file is corrupted.
pub fn list_files_zip<P>(source: P) -> FmResult<Vec<String>>
where
P: AsRef<Path>,
{
let file = File::open(source)?;
- let mut content = vec![];
- let mut zip = zip::ZipArchive::new(file)?;
-
- for i in 0..zip.len() {
- let file = zip.by_index(i)?;
- content.push(file.name().to_owned());
- }
- Ok(content)
+ let zip = zip::ZipArchive::new(file)?;
+ Ok(zip.file_names().map(|f| f.to_owned()).collect())
}
diff --git a/src/preview.rs b/src/preview.rs
index c63f2ac..b426fc2 100644
--- a/src/preview.rs
+++ b/src/preview.rs
@@ -410,8 +410,8 @@ impl PdfContent {
}
}
-/// Holds a list of file of an archive as returned by `compress_tools::list_files`.
-/// It may fail if the archive can't be read properly.
+/// Holds a list of file of an archive as returned by `ZipArchive::file_names`.
+/// A generic error message prevent it from returning an error.
#[derive(Clone)]
pub struct ZipContent {
length: usize,