1 #![allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411
2 
3 cfg_io_util! {
4     mod async_buf_read_ext;
5     pub use async_buf_read_ext::AsyncBufReadExt;
6 
7     mod async_read_ext;
8     pub use async_read_ext::AsyncReadExt;
9 
10     mod async_seek_ext;
11     pub use async_seek_ext::AsyncSeekExt;
12 
13     mod async_write_ext;
14     pub use async_write_ext::AsyncWriteExt;
15 
16     mod buf_reader;
17     pub use buf_reader::BufReader;
18 
19     mod buf_stream;
20     pub use buf_stream::BufStream;
21 
22     mod buf_writer;
23     pub use buf_writer::BufWriter;
24 
25     mod chain;
26 
27     mod copy;
28     pub use copy::copy;
29 
30     mod copy_bidirectional;
31     pub use copy_bidirectional::{copy_bidirectional, copy_bidirectional_with_sizes};
32 
33     mod copy_buf;
34     pub use copy_buf::copy_buf;
35 
36     mod empty;
37     pub use empty::{empty, Empty};
38 
39     mod flush;
40 
41     mod lines;
42     pub use lines::Lines;
43 
44     mod mem;
45     pub use mem::{duplex, simplex, DuplexStream, SimplexStream};
46 
47     mod read;
48     mod read_buf;
49     mod read_exact;
50     mod read_int;
51     mod read_line;
52     mod fill_buf;
53 
54     mod read_to_end;
55     mod vec_with_initialized;
56     cfg_process! {
57         pub(crate) use read_to_end::read_to_end;
58     }
59 
60     mod read_to_string;
61     mod read_until;
62 
63     mod repeat;
64     pub use repeat::{repeat, Repeat};
65 
66     mod shutdown;
67 
68     mod sink;
69     pub use sink::{sink, Sink};
70 
71     mod split;
72     pub use split::Split;
73 
74     mod take;
75     pub use take::Take;
76 
77     mod write;
78     mod write_vectored;
79     mod write_all;
80     mod write_buf;
81     mod write_all_buf;
82     mod write_int;
83 
84 
85     // used by `BufReader` and `BufWriter`
86     // https://github.com/rust-lang/rust/blob/master/library/std/src/sys_common/io.rs#L1
87     const DEFAULT_BUF_SIZE: usize = 8 * 1024;
88 
89     cfg_coop! {
90         fn poll_proceed_and_make_progress(cx: &mut std::task::Context<'_>) -> std::task::Poll<()> {
91             let coop = std::task::ready!(crate::runtime::coop::poll_proceed(cx));
92             coop.made_progress();
93             std::task::Poll::Ready(())
94         }
95     }
96 
97     cfg_not_coop! {
98         fn poll_proceed_and_make_progress(_: &mut std::task::Context<'_>) -> std::task::Poll<()> {
99             std::task::Poll::Ready(())
100         }
101     }
102 }
103 
104 cfg_not_io_util! {
105     cfg_process! {
106         mod vec_with_initialized;
107         mod read_to_end;
108         // Used by process
109         pub(crate) use read_to_end::read_to_end;
110     }
111 }
112