From 0602afd50cbb8794a08f9c08852b95362cba34c7 Mon Sep 17 00:00:00 2001 From: "Andre B. Reis" Date: Thu, 20 Aug 2020 00:15:26 +0100 Subject: [PATCH] Make connect() and connect_with() take a FnOnce for the codec (#315) --- tarpc/examples/compression.rs | 2 +- tarpc/examples/pubsub.rs | 4 ++-- tarpc/examples/readme.rs | 2 +- tarpc/examples/server_calling_server.rs | 4 ++-- tarpc/src/serde_transport.rs | 6 +++--- tarpc/tests/service_functional.rs | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tarpc/examples/compression.rs b/tarpc/examples/compression.rs index bc958d3..70cd97a 100644 --- a/tarpc/examples/compression.rs +++ b/tarpc/examples/compression.rs @@ -118,7 +118,7 @@ async fn main() -> anyhow::Result<()> { .await; }); - let transport = tcp::connect(addr, Bincode::default()).await?; + let transport = tcp::connect(addr, Bincode::default).await?; let mut client = WorldClient::new(client::Config::default(), add_compression(transport)).spawn()?; diff --git a/tarpc/examples/pubsub.rs b/tarpc/examples/pubsub.rs index d4001aa..7c124d8 100644 --- a/tarpc/examples/pubsub.rs +++ b/tarpc/examples/pubsub.rs @@ -103,7 +103,7 @@ impl Subscriber { publisher_addr: impl ToSocketAddrs, topics: Vec, ) -> anyhow::Result { - let publisher = tcp::connect(publisher_addr, Json::default()).await?; + let publisher = tcp::connect(publisher_addr, Json::default).await?; let local_addr = publisher.local_addr()?; let mut handler = server::BaseChannel::with_defaults(publisher) .respond_with(Subscriber { local_addr, topics }.serve()); @@ -308,7 +308,7 @@ async fn main() -> anyhow::Result<()> { let mut publisher = publisher::PublisherClient::new( client::Config::default(), - tcp::connect(addrs.publisher, Json::default()).await?, + tcp::connect(addrs.publisher, Json::default).await?, ) .spawn()?; diff --git a/tarpc/examples/readme.rs b/tarpc/examples/readme.rs index b08245c..fe40886 100644 --- a/tarpc/examples/readme.rs +++ b/tarpc/examples/readme.rs @@ -62,7 +62,7 @@ async fn main() -> io::Result<()> { }; tokio::spawn(server); - let transport = tarpc::serde_transport::tcp::connect(addr, Json::default()).await?; + let transport = tarpc::serde_transport::tcp::connect(addr, Json::default).await?; // WorldClient is generated by the tarpc::service attribute. It has a constructor `new` that // takes a config and any Transport as input. diff --git a/tarpc/examples/server_calling_server.rs b/tarpc/examples/server_calling_server.rs index b955673..3592c23 100644 --- a/tarpc/examples/server_calling_server.rs +++ b/tarpc/examples/server_calling_server.rs @@ -68,7 +68,7 @@ async fn main() -> io::Result<()> { .respond_with(AddServer.serve()); tokio::spawn(add_server); - let to_add_server = tarpc::serde_transport::tcp::connect(addr, Json::default()).await?; + let to_add_server = tarpc::serde_transport::tcp::connect(addr, Json::default).await?; let add_client = add::AddClient::new(client::Config::default(), to_add_server).spawn()?; let double_listener = tarpc::serde_transport::tcp::listen("localhost:0", Json::default) @@ -81,7 +81,7 @@ async fn main() -> io::Result<()> { .respond_with(DoubleServer { add_client }.serve()); tokio::spawn(double_server); - let to_double_server = tarpc::serde_transport::tcp::connect(addr, Json::default()).await?; + let to_double_server = tarpc::serde_transport::tcp::connect(addr, Json::default).await?; let mut double_client = double::DoubleClient::new(client::Config::default(), to_double_server).spawn()?; diff --git a/tarpc/src/serde_transport.rs b/tarpc/src/serde_transport.rs index 8a7d360..8f053b1 100644 --- a/tarpc/src/serde_transport.rs +++ b/tarpc/src/serde_transport.rs @@ -154,7 +154,7 @@ pub mod tcp { /// Connects to `addr`, wrapping the connection in a TCP transport. pub async fn connect_with( addr: A, - codec: Codec, + codec: impl FnOnce() -> Codec, config: LengthDelimitedCodec, ) -> io::Result> where @@ -165,14 +165,14 @@ pub mod tcp { { Ok(new( Framed::new(TcpStream::connect(addr).await?, config), - codec, + codec(), )) } /// Connects to `addr`, wrapping the connection in a TCP transport. pub async fn connect( addr: A, - codec: Codec, + codec: impl FnOnce() -> Codec, ) -> io::Result> where A: ToSocketAddrs, diff --git a/tarpc/tests/service_functional.rs b/tarpc/tests/service_functional.rs index 1a149f6..19721e2 100644 --- a/tarpc/tests/service_functional.rs +++ b/tarpc/tests/service_functional.rs @@ -71,7 +71,7 @@ async fn serde() -> io::Result<()> { .respond_with(Server.serve()), ); - let transport = serde_transport::tcp::connect(addr, Json::default()).await?; + let transport = serde_transport::tcp::connect(addr, Json::default).await?; let mut client = ServiceClient::new(client::Config::default(), transport).spawn()?; assert_matches!(client.add(context::current(), 1, 2).await, Ok(3));