blob: df81ce005dd97957e4c4f2293d55fcf14ac1635a (
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
29
30
31
|
use crate::file::{ArchiveFileRead, ArchiveFileWrite};
use crate::result::ArchiveResult;
use std::io::{Read, Write};
pub trait ArchiveRead
where
Self: Sized,
{
type Reader: Read;
type FileInfo;
type FileReader: ArchiveFileRead<Info = Self::FileInfo>;
fn new(reader: Self::Reader) -> ArchiveResult<Self>;
fn files(&self) -> ArchiveResult<Vec<Self::FileInfo>>;
fn file_reader(&self, name: &str) -> ArchiveResult<Self::FileReader>;
}
pub trait ArchiveWrite
where
Self: Sized,
{
type Writer: Write;
type FileInfo;
type FileWriter: ArchiveFileWrite<Info = Self::FileInfo>;
fn new(write: Self::Writer) -> ArchiveResult<Self>;
fn file_writer(&self, name: &str) -> ArchiveResult<Self::FileWriter>;
}
|