pub async fn connect_with_connector<C>(&self, connector: C) -> Result<Channel, Error>
    where
        C: Service<Uri> + Send + 'static,
        C::Response: rt::Read + rt::Write + Send + Unpin,
        C::Future: Send,
        crate::BoxError: From<C::Error> + Send,
    {
        let connector = self.connector(connector);

        if let Some(connect_timeout) = self.connect_timeout {
            let mut connector = hyper_timeout::TimeoutConnector::new(connector);
            connector.set_connect_timeout(Some(connect_timeout));
            Channel::connect(connector, self.clone()).await
        } else {
            Channel::connect(connector, self.clone()).await
        }
    }
Connect with a custom connector.

This allows you to build a [Channel](struct.Channel.html) that uses a non-HTTP transport.
See the `uds` example for an example on how to use this function to build channel that
uses a Unix socket transport.

The [`connect_timeout`](Endpoint::connect_timeout) will still be applied.
tonic/src/transport/channel/endpoint.rs