use crate::driver::{ArchiveRead, ArchiveWrite, Driver}; use crate::ArchiveResult; use std::io::{Read, Write}; pub struct Archive { pub driver: D, } impl Archive where D::IO: std::io::Read, { pub fn new(io: D::IO) -> ArchiveResult { Ok(Self { driver: D::read(io)?, }) } } impl Archive where D::IO: Read + Write {}