1mod error;
2mod multiplexing;
3mod sink;
4mod socket;
5mod stream;
6mod versioned;
7mod stream_socket;
8
9#[cfg(test)]
10pub mod test_request;
11
12pub use fluvio_future::net::{BoxConnection, Connection};
13pub use self::error::SocketError;
14pub use self::socket::FluvioSocket;
15pub use multiplexing::*;
16pub use sink::*;
17
18pub use stream::*;
19pub use stream_socket::*;
20pub use versioned::*;
21
22use fluvio_protocol::api::Request;
23use fluvio_protocol::api::RequestMessage;
24use fluvio_protocol::api::ResponseMessage;
25
26pub(crate) mod built_info {
27 include!(concat!(env!("OUT_DIR"), "/built.rs"));
28}
29pub async fn send_and_receive<R>(
31 addr: &str,
32 request: &RequestMessage<R>,
33) -> Result<ResponseMessage<R::Response>, SocketError>
34where
35 R: Request,
36{
37 let mut client = FluvioSocket::connect(addr).await?;
38 let msgs: ResponseMessage<R::Response> = client.send(request).await?;
39 Ok(msgs)
40}