aboutsummaryrefslogtreecommitdiff
path: root/src/io/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/io/mod.rs')
-rw-r--r--src/io/mod.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/io/mod.rs b/src/io/mod.rs
new file mode 100644
index 0000000..6c40d73
--- /dev/null
+++ b/src/io/mod.rs
@@ -0,0 +1,31 @@
+//! Helpers for IO related tasks.
+//!
+//! The stream types are often used in combination with hyper or reqwest, as they
+//! allow converting between a hyper [`Body`] and [`AsyncRead`].
+//!
+//! The [`SyncIoBridge`] type converts from the world of async I/O
+//! to synchronous I/O; this may often come up when using synchronous APIs
+//! inside [`tokio::task::spawn_blocking`].
+//!
+//! [`Body`]: https://docs.rs/hyper/0.13/hyper/struct.Body.html
+//! [`AsyncRead`]: tokio::io::AsyncRead
+
+mod copy_to_bytes;
+mod inspect;
+mod read_buf;
+mod reader_stream;
+mod sink_writer;
+mod stream_reader;
+
+cfg_io_util! {
+ mod sync_bridge;
+ pub use self::sync_bridge::SyncIoBridge;
+}
+
+pub use self::copy_to_bytes::CopyToBytes;
+pub use self::inspect::{InspectReader, InspectWriter};
+pub use self::read_buf::read_buf;
+pub use self::reader_stream::ReaderStream;
+pub use self::sink_writer::SinkWriter;
+pub use self::stream_reader::StreamReader;
+pub use crate::util::{poll_read_buf, poll_write_buf};