Skip to content

Commit 19b023a

Browse files
committed
wip
1 parent 8307c77 commit 19b023a

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/pnp_fs.rs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,23 @@ pub fn mode_to_file_type(mode: u32) -> FileType {
3333
}
3434
}
3535

36-
struct ZipEntry {
37-
start: usize,
38-
end: usize,
39-
inflated_size: usize,
40-
}
4136

4237
pub struct Zip {
43-
files: HashMap<String, ZipEntry>,
38+
archive: ZipArchive<BufReader<fs::File>>,
39+
files: HashMap<String, ()>,
4440
dirs: HashSet<String>,
4541
}
4642

4743
impl Zip {
48-
fn new(archive: &mut ZipArchive<BufReader<fs::File>>) -> Result<Zip, Error> {
44+
fn new(archive: ZipArchive<BufReader<fs::File>>) -> Result<Zip, Error> {
4945
let mut zip = Zip {
46+
archive,
5047
files: Default::default(),
5148
dirs: Default::default(),
5249
};
5350

54-
for i in 0..archive.len() {
55-
let entry = archive.by_index_raw(i)?;
51+
for i in 0..zip.archive.len() {
52+
let entry = zip.archive.by_index_raw(i)?;
5653

5754
match entry.compression() {
5855
zip::CompressionMethod::DEFLATE => {}
@@ -74,11 +71,7 @@ impl Zip {
7471
if entry.is_dir() {
7572
zip.dirs.insert(name);
7673
} else if entry.is_file() {
77-
zip.files.insert(name, ZipEntry {
78-
start: entry.data_start() as usize,
79-
end: (entry.data_start() + entry.compressed_size()) as usize,
80-
inflated_size: entry.size() as usize,
81-
});
74+
zip.files.insert(name, {});
8275
}
8376
}
8477

@@ -106,8 +99,8 @@ pub fn open_zip(p: &Path) -> Result<Zip, Error> {
10699
let file = fs::File::open(p)?;
107100
let reader = BufReader::new(file);
108101

109-
let mut archive = ZipArchive::new(reader)?;
110-
let zip = Zip::new(&mut archive)?;
102+
let archive = ZipArchive::new(reader)?;
103+
let zip = Zip::new(archive)?;
111104

112105
Ok(zip)
113106
}

0 commit comments

Comments
 (0)