     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41

    macro_rules! ready {
        ($e:expr) => {
            match $e {
                std::task::Poll::Ready(v) => v,
                std::task::Poll::Pending => return std::task::Poll::Pending,
            }
        };
    }

    pub(crate) mod buf;
    #[cfg(all(feature = "server", any(feature = "http1", feature = "http2")))]
    pub(crate) mod date;
    #[cfg(all(feature = "server", any(feature = "http1", feature = "http2")))]
    pub(crate) mod drain;
    #[cfg(any(feature = "http1", feature = "http2"))]
    pub(crate) mod exec;
    pub(crate) mod io;
    #[cfg(all(feature = "client", any(feature = "http1", feature = "http2")))]
    mod lazy;
    mod never;
    #[cfg(feature = "stream")]
    pub(crate) mod sync_wrapper;
    pub(crate) mod task;
    pub(crate) mod watch;

    #[cfg(all(feature = "client", any(feature = "http1", feature = "http2")))]
    pub(crate) use self::lazy::{lazy, Started as Lazy};
    #[cfg(any(
        feature = "client",
        feature = "http1",
        feature = "http2",
        feature = "runtime"
    ))]
    pub(crate) use self::never::Never;
    pub(crate) use self::task::Poll;

    // group up types normally needed for `Future`
    cfg_proto! {
        pub(crate) use std::marker::Unpin;
    }
    pub(crate) use std::{future::Future, pin::Pin};