pub trait XrpcClient: HttpClient {
// Required methods
fn host(&self) -> &str;
fn auth(&self, is_refresh: bool) -> Option<&str>;
// Provided method
fn send<'life0, 'life1, 'async_trait, E>(
&'life0 self,
method: Method,
path: &'life1 str,
query: Option<String>,
input: Option<Vec<u8>>,
encoding: Option<String>
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Box<dyn Error>>> + Send + 'async_trait>>
where E: Debug + DeserializeOwned + PartialEq + Eq + 'static + 'async_trait,
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
}