use super::file::{FileInfo, FileReader, FileWriter}; use crate::io::{ArchiveRead, ArchiveWrite}; use crate::result::ArchiveResult; use std::fs::File; use std::io::Read; use std::io::{Seek, Write}; pub struct Reader { reader: R, } impl ArchiveRead for Reader { type Reader = R; type FileInfo = FileInfo; type FileReader = FileReader; fn new(reader: Self::Reader) -> ArchiveResult { Ok(Self { reader }) } fn files(&self) -> ArchiveResult> { Ok(Vec::new()) } fn file_reader(&self, name: &str) -> ArchiveResult { Ok(Self::FileReader {}) } } impl Reader {} pub struct Writer { writer: W, } impl ArchiveWrite for Writer { type Writer = W; type FileInfo = FileInfo; type FileWriter = FileWriter; fn new(writer: Self::Writer) -> ArchiveResult { Ok(Self { writer }) } fn file_writer(&self, name: &str) -> ArchiveResult { Ok(Self::FileWriter {}) } } impl Writer {}