use pile_io::{AsyncReader, AsyncSeekReader}; use std::{ fs::File, io::{Cursor, Seek}, }; use crate::value::ArcBytes; // // MARK: itemreader // pub enum ItemReader { File(File), Vec(Cursor), } impl AsyncReader for ItemReader { async fn read(&mut self, buf: &mut [u8]) -> Result { match self { Self::File(x) => std::io::Read::read(x, buf), Self::Vec(x) => std::io::Read::read(x, buf), } } } impl AsyncSeekReader for ItemReader { async fn seek(&mut self, pos: std::io::SeekFrom) -> Result { match self { Self::File(x) => x.seek(pos), Self::Vec(x) => x.seek(pos), } } }