aboutsummaryrefslogtreecommitdiff
path: root/src/zip.rs
blob: a5d0fc5ea358e25922578e74b6a67c846b11b916 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::io::{ArchiveRead, ArchiveWrite};
use crate::result::ArchiveResult;
use std::io::{Seek, Write};
use std::{fs::File, io::Read};

pub struct ZipReader<R: Read + Seek = File> {
    reader: R,
}

impl<R: Read + Seek> ArchiveRead for ZipReader<R> {
    type Reader = R;

    fn new(reader: Self::Reader) -> ArchiveResult<Self> {
        Ok(Self { reader })
    }
}

pub struct ZipWriter<W: Write = File> {
    writer: W,
}

impl<W: Write> ArchiveWrite for ZipWriter<W> {
    type Writer = W;

    fn new(writer: Self::Writer) -> ArchiveResult<Self> {
        Ok(Self { writer })
    }
}