Make connect() and connect_with() take a FnOnce for the codec (#315)

This commit is contained in:
Andre B. Reis
2020-08-20 00:15:26 +01:00
committed by GitHub
parent 4343e12217
commit 0602afd50c
6 changed files with 10 additions and 10 deletions

View File

@@ -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()?;

View File

@@ -103,7 +103,7 @@ impl Subscriber {
publisher_addr: impl ToSocketAddrs,
topics: Vec<String>,
) -> anyhow::Result<SubscriberHandle> {
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()?;

View File

@@ -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.

View File

@@ -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()?;

View File

@@ -154,7 +154,7 @@ pub mod tcp {
/// Connects to `addr`, wrapping the connection in a TCP transport.
pub async fn connect_with<A, Item, SinkItem, Codec>(
addr: A,
codec: Codec,
codec: impl FnOnce() -> Codec,
config: LengthDelimitedCodec,
) -> io::Result<Transport<TcpStream, Item, SinkItem, Codec>>
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<A, Item, SinkItem, Codec>(
addr: A,
codec: Codec,
codec: impl FnOnce() -> Codec,
) -> io::Result<Transport<TcpStream, Item, SinkItem, Codec>>
where
A: ToSocketAddrs,

View File

@@ -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));