mod http_range_request;
mod http_reader;
mod io_reader;
use async_trait::async_trait;
use bytes::Bytes;
use core::pin::Pin;
use futures_util::stream::Stream;
pub use http_reader::{HttpReader, HttpReaderError};
pub use io_reader::IoReader;
use crate::ChunkOffset;
#[async_trait]
pub trait ArchiveReader {
type Error;
async fn read_at<'a>(&'a mut self, offset: u64, size: usize) -> Result<Bytes, Self::Error>;
fn read_chunks<'a>(
&'a mut self,
chunks: Vec<ChunkOffset>,
) -> Pin<Box<dyn Stream<Item = Result<Bytes, Self::Error>> + Send + 'a>>;
}