use std::fs::File;
use std::io::{self, Cursor, Read};
pub enum Reader {
Disk { file: File, size: u64 },
Commit { cursor: Cursor<Vec<u8>> },
}
impl Read for Reader {
fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
match self {
Reader::Disk { file, .. } => file.read(buf),
Reader::Commit { cursor, .. } => cursor.read(buf),
}
}
}
impl Reader {
pub fn size(&self) -> u64 {
match self {
Reader::Disk { size, .. } => *size,
Reader::Commit { cursor, .. } => cursor.get_ref().len() as u64,
}
}
}