use std::fs::File;
use std::io::{BufReader, Read, Seek, SeekFrom};
use crate::volume::MultiVolumeReader;
#[derive(Debug)]
pub enum ArchiveSource {
Single(BufReader<File>),
Volumes(Box<MultiVolumeReader>),
}
impl Read for ArchiveSource {
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
match self {
Self::Single(reader) => reader.read(buf),
Self::Volumes(reader) => reader.read(buf),
}
}
}
impl Seek for ArchiveSource {
fn seek(&mut self, pos: SeekFrom) -> std::io::Result<u64> {
match self {
Self::Single(reader) => reader.seek(pos),
Self::Volumes(reader) => reader.seek(pos),
}
}
}