aboutsummaryrefslogtreecommitdiff
path: root/src/archive.rs
diff options
context:
space:
mode:
authorIgor Tolmachev <me@igorek.dev>2024-06-15 03:30:50 +0900
committerIgor Tolmachev <me@igorek.dev>2024-06-23 15:34:34 +0900
commitf8c3c93824645a807d28b760855b4676ea479720 (patch)
tree1f91838c2abcb3b0683a061f892b8e2835be4fa1 /src/archive.rs
parentbd77f62e99a5300dfa52aef3a7040414b28ebfd6 (diff)
downloadarchivator-f8c3c93824645a807d28b760855b4676ea479720.tar.gz
archivator-f8c3c93824645a807d28b760855b4676ea479720.zip
Add simple zip reader
Diffstat (limited to 'src/archive.rs')
-rw-r--r--src/archive.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/archive.rs b/src/archive.rs
new file mode 100644
index 0000000..a422f9e
--- /dev/null
+++ b/src/archive.rs
@@ -0,0 +1,20 @@
1use crate::driver::{ArchiveRead, ArchiveWrite, Driver};
2use crate::ArchiveResult;
3use std::io::{Read, Write};
4
5pub struct Archive<D: Driver> {
6 pub(crate) driver: D,
7}
8
9impl<D: ArchiveRead> Archive<D>
10where
11 D::IO: std::io::Read,
12{
13 pub fn new(io: D::IO) -> ArchiveResult<Self, D::Error> {
14 Ok(Self {
15 driver: D::read(io)?,
16 })
17 }
18}
19
20impl<D: ArchiveWrite> Archive<D> where D::IO: Read + Write {}