1 //! Helpers for IO related tasks. 2 //! 3 //! The stream types are often used in combination with hyper or reqwest, as they 4 //! allow converting between a hyper [`Body`] and [`AsyncRead`]. 5 //! 6 //! The [`SyncIoBridge`] type converts from the world of async I/O 7 //! to synchronous I/O; this may often come up when using synchronous APIs 8 //! inside [`tokio::task::spawn_blocking`]. 9 //! 10 //! [`Body`]: https://docs.rs/hyper/0.13/hyper/struct.Body.html 11 //! [`AsyncRead`]: tokio::io::AsyncRead 12 13 mod copy_to_bytes; 14 mod inspect; 15 mod read_buf; 16 mod reader_stream; 17 mod sink_writer; 18 mod stream_reader; 19 20 cfg_io_util! { 21 mod sync_bridge; 22 pub use self::sync_bridge::SyncIoBridge; 23 } 24 25 pub use self::copy_to_bytes::CopyToBytes; 26 pub use self::inspect::{InspectReader, InspectWriter}; 27 pub use self::read_buf::read_buf; 28 pub use self::reader_stream::ReaderStream; 29 pub use self::sink_writer::SinkWriter; 30 pub use self::stream_reader::StreamReader; 31 pub use crate::util::{poll_read_buf, poll_write_buf}; 32