use warp_json_rpc::{filters as json_rpc, Builder};
use futures::future;
use warp::Filter as _;
use std::convert::Infallible;
#[tokio::main]
async fn main() {
let route = warp::filters::path::path("rpc")
.and(json_rpc::json_rpc())
.and(json_rpc::method("add"))
.and(json_rpc::params::<(usize, usize)>())
.map(|res: Builder, (lhs, rhs)| res.success(lhs + rhs).unwrap());
let svc = warp_json_rpc::service(route);
let make_svc = hyper::service::make_service_fn(move |_| {
future::ok::<_, Infallible>(svc.clone())
});
hyper::Server::bind(&([127, 0, 0, 1], 3030).into())
.serve(make_svc)
.await
.unwrap();
}