From ef91e79e35e9402855f1370c2a570bafdf3a58f1 Mon Sep 17 00:00:00 2001 From: Igor Tolmachev Date: Wed, 10 Jul 2024 15:23:51 +0900 Subject: Add mtime, atime, ctime --- src/zip/file/read.rs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'src/zip/file/read.rs') diff --git a/src/zip/file/read.rs b/src/zip/file/read.rs index 6ec7db7..7d683db 100644 --- a/src/zip/file/read.rs +++ b/src/zip/file/read.rs @@ -1,4 +1,5 @@ use crate::driver::FileDriver; +use crate::utils::ReadUtils; use crate::zip::{CompressionMethod, ZipError, ZipFileInfo, ZipResult}; use bzip2::read::BzDecoder; use flate2::read::DeflateDecoder; @@ -35,11 +36,7 @@ impl<'d, Io: Read> FileDriver for ZipFileReader<'d, Io> { impl<'d, Io: Read + Seek> ZipFileReader<'d, Io> { pub fn new(io: &'d mut Io, info: &'d ZipFileInfo) -> ZipResult { io.seek(SeekFrom::Start(info.header_pointer))?; - let buf = { - let mut buf = [0; 30]; - io.read(&mut buf)?; - buf - }; + let buf = io.read_arr::<30>()?; if u32::from_le_bytes(buf[..4].try_into().unwrap()) != 0x04034b50 { return Err(ZipError::InvalidFileHeaderSignature.into()); @@ -56,12 +53,8 @@ impl<'d, Io: Read + Seek> ZipFileReader<'d, Io> { CompressionMethod::Deflate => IoProxy::Deflate(DeflateDecoder::new(io)), CompressionMethod::BZip2 => IoProxy::BZip2(BzDecoder::new(io)), CompressionMethod::Lzma => { - let buf = { - let mut buf = [0; 9]; - io.read(&mut buf)?; - cursor += 9; - buf - }; + let buf = io.read_arr::<9>()?; + cursor += 9; IoProxy::Xz(XzDecoder::new_stream( io, Stream::new_raw_decoder( @@ -71,7 +64,7 @@ impl<'d, Io: Read + Seek> ZipFileReader<'d, Io> { .literal_position_bits((buf[4] / 9 % 5) as u32) .position_bits((buf[4] / 45) as u32) .dict_size( - u32::from_le_bytes(buf[5..9].try_into().unwrap()).min(4096), + u32::from_le_bytes(buf[5..9].try_into().unwrap()).max(4096), ), ), ) -- cgit v1.2.3