1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
cfg_if::cfg_if! {
    if #[cfg(all(feature = "futures_io", not(feature = "tokio_io")))] {
        pub use futures_io::{AsyncBufRead, AsyncRead, AsyncSeek, AsyncWrite};
    } else if #[cfg(all(not(feature = "futures_io"), feature = "tokio_io"))] {
        pub use tokio::io::{AsyncBufRead, AsyncRead, AsyncSeek, AsyncWrite};
    }
}

cfg_if::cfg_if! {
    if #[cfg(all(feature = "futures_util_io", not(feature = "futures_lite_io"), not(feature = "tokio_io_util"), feature = "futures_io", not(feature = "tokio_io")))] {
        pub use futures_util::io::{AsyncBufReadExt, AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufReader};
        pub use futures_util::io::Cursor;
    } else if #[cfg(all(not(feature = "futures_util_io"), feature = "futures_lite_io", not(feature = "tokio_io_util"), feature = "futures_io", not(feature = "tokio_io")))] {
        pub use futures_lite::io::{AsyncBufReadExt, AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufReader};
        pub use futures_lite::io::Cursor;
    } else if #[cfg(all(not(feature = "futures_util_io"), not(feature = "futures_lite_io"), feature = "tokio_io_util", not(feature = "futures_io"), feature = "tokio_io"))] {
        pub use tokio::io::{AsyncBufReadExt, AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufReader};
        pub use std::io::Cursor;
    }
}