use std::io::{self, Read, Seek, Write};
pub mod adaptive;
pub mod bounded;
pub mod memory;
#[cfg(feature = "temp-storage")]
pub mod temp;
pub trait StorageProvider: Send {
type Reader: StorageReader;
type Writer: StorageWriter;
fn into_reader_writer(
self,
content_length: Option<u64>,
) -> io::Result<(Self::Reader, Self::Writer)>;
fn max_capacity(&self) -> Option<usize> {
None
}
}
pub trait StorageReader: Read + Seek + Send {}
impl<T> StorageReader for T where T: Read + Seek + Send {}
pub trait StorageWriter: Write + Seek + Send + 'static {}
impl<T> StorageWriter for T where T: Write + Seek + Send + 'static {}