| 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 read_arc; |
| 22 | pub use self::read_arc::read_exact_arc; |
| 23 | |
| 24 | mod sync_bridge; |
| 25 | pub use self::sync_bridge::SyncIoBridge; |
| 26 | } |
| 27 | |
| 28 | pub use self::copy_to_bytes::CopyToBytes; |
| 29 | pub use self::inspect::{InspectReader, InspectWriter}; |
| 30 | pub use self::read_buf::read_buf; |
| 31 | pub use self::reader_stream::ReaderStream; |
| 32 | pub use self::sink_writer::SinkWriter; |
| 33 | pub use self::stream_reader::StreamReader; |
| 34 | pub use crate::util::{poll_read_buf, poll_write_buf}; |
| 35 | |