async-http-client-lite 0.1.0

Asynchronous http client.
Documentation
use std::io;

use async_std::net::{TcpStream, ToSocketAddrs};
use async_trait::async_trait;

use crate::connector::*;

pub struct AsyncStdTcpConnector;

#[async_trait]
impl<A> Connector<TcpStream, A> for AsyncStdTcpConnector
where
    A: ToSocketAddrs + Send + Sync + 'static,
    A::Iter: Send,
{
    async fn connect(
        addr: A,
        client_proxy: Option<ClientProxy>,
        client_tls: Option<ClientTls>,
    ) -> io::Result<Client<ClientInnerStream<TcpStream>>> {
        let stream = TcpStream::connect(addr).await?;

        Client::with(stream, client_proxy, client_tls).await
    }
}

//
//
//
#[cfg(unix)]
mod unix_ {
    use super::*;

    use async_std::os::unix::net::UnixStream;
    use async_std::path::Path;

    pub struct AsyncStdUnixConnector;

    #[async_trait]
    impl<A> Connector<UnixStream, A> for AsyncStdUnixConnector
    where
        A: AsRef<Path> + Send + 'static,
    {
        async fn connect(
            addr: A,
            client_proxy: Option<ClientProxy>,
            client_tls: Option<ClientTls>,
        ) -> io::Result<Client<ClientInnerStream<UnixStream>>> {
            let stream = UnixStream::connect(addr).await?;

            Client::with(stream, client_proxy, client_tls).await
        }
    }
}
#[cfg(unix)]
pub use unix_::*;