diff options
Diffstat (limited to 'src/zip/driver.rs')
| -rw-r--r-- | src/zip/driver.rs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/zip/driver.rs b/src/zip/driver.rs index 8662623..650344e 100644 --- a/src/zip/driver.rs +++ b/src/zip/driver.rs | |||
| @@ -4,10 +4,9 @@ use crate::zip::structs::{deserialize, EOCDR64Locator, ExtraHeader, CDR, EOCDR, | |||
| 4 | use crate::zip::{ZipError, ZipFile, ZipResult}; | 4 | use crate::zip::{ZipError, ZipFile, ZipResult}; |
| 5 | use chrono::{Local, NaiveDate, NaiveDateTime, NaiveTime}; | 5 | use chrono::{Local, NaiveDate, NaiveDateTime, NaiveTime}; |
| 6 | use std::collections::HashMap as Map; | 6 | use std::collections::HashMap as Map; |
| 7 | use std::fs::File; | ||
| 8 | use std::io::{Read, Seek, SeekFrom, Write}; | 7 | use std::io::{Read, Seek, SeekFrom, Write}; |
| 9 | 8 | ||
| 10 | pub struct Zip<IO = File> { | 9 | pub struct Zip<IO> { |
| 11 | io: IO, | 10 | io: IO, |
| 12 | 11 | ||
| 13 | files: Map<String, ZipFile>, | 12 | files: Map<String, ZipFile>, |
| @@ -169,10 +168,24 @@ impl<IO: Read + Seek> ArchiveRead for Zip<IO> { | |||
| 169 | 168 | ||
| 170 | Ok(Self { io, files, comment }) | 169 | Ok(Self { io, files, comment }) |
| 171 | } | 170 | } |
| 171 | |||
| 172 | fn files(&self) -> Vec<&Self::File> { | ||
| 173 | let mut files: Vec<&Self::File> = self.files.values().collect(); | ||
| 174 | files.sort_by_key(|f| &f.name); | ||
| 175 | files | ||
| 176 | } | ||
| 177 | |||
| 178 | fn get_file(&self, name: &str) -> Option<&Self::File> { | ||
| 179 | self.files.get(name) | ||
| 180 | } | ||
| 172 | } | 181 | } |
| 173 | 182 | ||
| 174 | impl<IO: Read + Seek> Zip<IO> {} | 183 | impl<IO: Read + Seek> Zip<IO> { |
| 184 | pub fn comment(&self) -> &String { | ||
| 185 | &self.comment | ||
| 186 | } | ||
| 187 | } | ||
| 175 | 188 | ||
| 176 | impl<IO: Read + Write + Seek> ArchiveWrite for Zip<IO> {} | 189 | impl<IO: Read + Write + Seek> ArchiveWrite for Zip<IO> {} |
| 177 | 190 | ||
| 178 | impl<IO: Read + Write> Zip<IO> {} | 191 | impl<IO: Read + Write + Seek> Zip<IO> {} |
