1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#![deny(missing_docs)]
#![forbid(unsafe_code)]
//! Offers two structs:
//! * [`RangedReader`], that implements [`std::io::Read`] and [`std::io::Seek`] from a function
//! returning a [`Vec<u8>`] from a ranged request `(start, length)`.
//! * [`RangedAsyncReader`] that implements [`futures::io::AsyncRead`] and [`futures::io::AsyncRead`]
//! from a asynchronous function returning (a future of) [`Vec<u8>`] from a ranged request `(start, length)`.
//!
//! A common use use-case for this crate is to perform ranged queries from remote blob storages
//! such as AWS s3, Azure blob, and Google's cloud storage.
#[cfg(feature = "sync")]
#[cfg_attr(docsrs, doc(cfg(feature = "sync")))]
mod sync;
#[cfg(feature = "sync")]
#[cfg_attr(docsrs, doc(cfg(feature = "sync")))]
pub use sync::*;
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
mod stream;
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub use stream::*;