aboutsummaryrefslogtreecommitdiff
path: root/src/zip/io.rs
diff options
context:
space:
mode:
authorIgor Tolmachov <me@igorek.dev>2023-08-29 20:24:44 +0900
committerIgor Tolmachev <me@igorek.dev>2024-06-23 15:34:33 +0900
commitf02a44964a2fdb91d62dee9c55f6d03648f985cb (patch)
tree4e1e91ab8cc19a9a9f2dfdd03c0ecbc2b6da2a14 /src/zip/io.rs
parentd8be93a740e8cc8103c4f9e260a62244eba1a6a4 (diff)
downloadarchivator-f02a44964a2fdb91d62dee9c55f6d03648f985cb.tar.gz
archivator-f02a44964a2fdb91d62dee9c55f6d03648f985cb.zip
Add zip stubs
Diffstat (limited to 'src/zip/io.rs')
-rw-r--r--src/zip/io.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/zip/io.rs b/src/zip/io.rs
new file mode 100644
index 0000000..b79ad0d
--- /dev/null
+++ b/src/zip/io.rs
@@ -0,0 +1,50 @@
1use super::file::{FileInfo, FileReader, FileWriter};
2use crate::io::{ArchiveRead, ArchiveWrite};
3use crate::result::ArchiveResult;
4use std::fs::File;
5use std::io::Read;
6use std::io::{Seek, Write};
7
8pub struct Reader<R: Read + Seek = File> {
9 reader: R,
10}
11
12impl<R: Read + Seek> ArchiveRead for Reader<R> {
13 type Reader = R;
14 type FileInfo = FileInfo;
15 type FileReader = FileReader;
16
17 fn new(reader: Self::Reader) -> ArchiveResult<Self> {
18 Ok(Self { reader })
19 }
20
21 fn files(&self) -> ArchiveResult<Vec<Self::FileInfo>> {
22 Ok(Vec::new())
23 }
24
25 fn file_reader(&self, name: &str) -> ArchiveResult<Self::FileReader> {
26 Ok(Self::FileReader {})
27 }
28}
29
30impl<R: Read + Seek> Reader<R> {}
31
32pub struct Writer<W: Write = File> {
33 writer: W,
34}
35
36impl<W: Write> ArchiveWrite for Writer<W> {
37 type Writer = W;
38 type FileInfo = FileInfo;
39 type FileWriter = FileWriter;
40
41 fn new(writer: Self::Writer) -> ArchiveResult<Self> {
42 Ok(Self { writer })
43 }
44
45 fn file_writer(&self, name: &str) -> ArchiveResult<Self::FileWriter> {
46 Ok(Self::FileWriter {})
47 }
48}
49
50impl<W: Write> Writer<W> {}