use std::io;
use std::net::SocketAddr;
use msgpack_rpc::Client;
use tokio::net::TcpStream;
use tokio_util::compat::TokioAsyncReadCompatExt;
#[tokio::main]
async fn main() -> io::Result<()> {
env_logger::init();
let addr: SocketAddr = "127.0.0.1:54321".parse().unwrap();
let socket = TcpStream::connect(&addr).await?;
let client = Client::new(socket.compat());
client.notify("hello", &[]);
match client.request("dostuff", &["foo".into(), 42.into()]).await {
Ok(response) => println!("Response: {:?}", response),
Err(e) => println!("Error: {:?}", e),
}
Ok(())
}