mirror of
https://github.com/OMGeeky/tarpc.git
synced 2026-01-06 11:34:39 +01:00
Make connect() and connect_with() take a FnOnce for the codec (#315)
This commit is contained in:
@@ -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()?;
|
||||
|
||||
|
||||
@@ -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()?;
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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()?;
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user