JSON transport: use Tokio resolver for connect()

This commit is contained in:
Artem Vorotnikov
2019-10-09 03:32:10 +03:00
committed by Tim
parent 5ab3866d96
commit d8c7b9feb2
2 changed files with 5 additions and 6 deletions

View File

@@ -5,7 +5,7 @@
// https://opensource.org/licenses/MIT.
use clap::{App, Arg};
use std::io;
use std::{io, net::SocketAddr};
use tarpc::{client, context};
#[tokio::main]
@@ -35,12 +35,12 @@ async fn main() -> io::Result<()> {
let server_addr = flags.value_of("server_addr").unwrap();
let server_addr = server_addr
.parse()
.parse::<SocketAddr>()
.unwrap_or_else(|e| panic!(r#"--server_addr value "{}" invalid: {}"#, server_addr, e));
let name = flags.value_of("name").unwrap().into();
let transport = tarpc_json_transport::connect(&server_addr).await?;
let transport = tarpc_json_transport::connect(server_addr).await?;
// WorldClient is generated by the service attribute. It has a constructor `new` that takes a
// config and any Transport as input.

View File

@@ -124,10 +124,9 @@ impl<S: AsyncWrite + AsyncRead, Item: serde::de::DeserializeOwned, SinkItem: Ser
}
/// Connects to `addr`, wrapping the connection in a JSON transport.
pub async fn connect<Item, SinkItem>(
addr: &SocketAddr,
) -> io::Result<Transport<TcpStream, Item, SinkItem>>
pub async fn connect<A, Item, SinkItem>(addr: A) -> io::Result<Transport<TcpStream, Item, SinkItem>>
where
A: ToSocketAddrs,
Item: for<'de> Deserialize<'de>,
SinkItem: Serialize,
{