aboutsummaryrefslogtreecommitdiff
path: root/src/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/io.rs
parentd8be93a740e8cc8103c4f9e260a62244eba1a6a4 (diff)
downloadarchivator-f02a44964a2fdb91d62dee9c55f6d03648f985cb.tar.gz
archivator-f02a44964a2fdb91d62dee9c55f6d03648f985cb.zip
Add zip stubs
Diffstat (limited to 'src/io.rs')
-rw-r--r--src/io.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/io.rs b/src/io.rs
index cea998f..df81ce0 100644
--- a/src/io.rs
+++ b/src/io.rs
@@ -1,14 +1,20 @@
1use std::io::{Read, Seek, Write}; 1use crate::file::{ArchiveFileRead, ArchiveFileWrite};
2
3use crate::result::ArchiveResult; 2use crate::result::ArchiveResult;
3use std::io::{Read, Write};
4 4
5pub trait ArchiveRead 5pub trait ArchiveRead
6where 6where
7 Self: Sized, 7 Self: Sized,
8{ 8{
9 type Reader: Read + Seek; 9 type Reader: Read;
10 type FileInfo;
11 type FileReader: ArchiveFileRead<Info = Self::FileInfo>;
10 12
11 fn new(reader: Self::Reader) -> ArchiveResult<Self>; 13 fn new(reader: Self::Reader) -> ArchiveResult<Self>;
14
15 fn files(&self) -> ArchiveResult<Vec<Self::FileInfo>>;
16
17 fn file_reader(&self, name: &str) -> ArchiveResult<Self::FileReader>;
12} 18}
13 19
14pub trait ArchiveWrite 20pub trait ArchiveWrite
@@ -16,6 +22,10 @@ where
16 Self: Sized, 22 Self: Sized,
17{ 23{
18 type Writer: Write; 24 type Writer: Write;
25 type FileInfo;
26 type FileWriter: ArchiveFileWrite<Info = Self::FileInfo>;
19 27
20 fn new(write: Self::Writer) -> ArchiveResult<Self>; 28 fn new(write: Self::Writer) -> ArchiveResult<Self>;
29
30 fn file_writer(&self, name: &str) -> ArchiveResult<Self::FileWriter>;
21} 31}