use jsonrpc_client::{Response, SendRequest, Url}; use serde::de::DeserializeOwned; use std::fmt; #[jsonrpc_client::api] pub trait Math { async fn subtract(&self, subtrahend: i64, minuend: i64) -> i64; } struct InnerClient; #[derive(Debug)] pub struct DummyError; impl fmt::Display for DummyError { fn fmt(&self, _: &mut fmt::Formatter<'_>) -> fmt::Result { unimplemented!() } } impl std::error::Error for DummyError {} #[async_trait::async_trait] impl SendRequest for InnerClient { type Error = DummyError; async fn send_request

(&self, endpoint: Url, body: String) -> Result, Self::Error> where P: DeserializeOwned, { unimplemented!() } } #[jsonrpc_client::implement(Math)] pub struct Client { inner: InnerClient, base_url: Url, } fn main() {}