aboutsummaryrefslogtreecommitdiff
path: root/src/zip.rs
diff options
context:
space:
mode:
authorIgor Tolmachov <me@igorek.dev>2023-08-17 15:34:47 +0900
committerIgor Tolmachev <me@igorek.dev>2024-06-23 15:34:32 +0900
commitd8be93a740e8cc8103c4f9e260a62244eba1a6a4 (patch)
treeacc3b3b7f86fa3e2e4e8656d554efa62a24aa3f7 /src/zip.rs
parent22dad8c7431d0ca94acc51d161e7f4ad5a4b1f5d (diff)
downloadarchivator-d8be93a740e8cc8103c4f9e260a62244eba1a6a4.tar.gz
archivator-d8be93a740e8cc8103c4f9e260a62244eba1a6a4.zip
Add basic lib architecture
Diffstat (limited to 'src/zip.rs')
-rw-r--r--src/zip.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/zip.rs b/src/zip.rs
new file mode 100644
index 0000000..a5d0fc5
--- /dev/null
+++ b/src/zip.rs
@@ -0,0 +1,28 @@
1use crate::io::{ArchiveRead, ArchiveWrite};
2use crate::result::ArchiveResult;
3use std::io::{Seek, Write};
4use std::{fs::File, io::Read};
5
6pub struct ZipReader<R: Read + Seek = File> {
7 reader: R,
8}
9
10impl<R: Read + Seek> ArchiveRead for ZipReader<R> {
11 type Reader = R;
12
13 fn new(reader: Self::Reader) -> ArchiveResult<Self> {
14 Ok(Self { reader })
15 }
16}
17
18pub struct ZipWriter<W: Write = File> {
19 writer: W,
20}
21
22impl<W: Write> ArchiveWrite for ZipWriter<W> {
23 type Writer = W;
24
25 fn new(writer: Self::Writer) -> ArchiveResult<Self> {
26 Ok(Self { writer })
27 }
28}