pub mod client; pub mod endpoints; pub mod types; use crate::endpoints::Endpoint; use endpoints::ResponseError; use serde::{de::DeserializeOwned, Serialize}; #[async_trait::async_trait(?Send)] pub trait Client { fn base_url(&self) -> &str; async fn call<'a, I, O, E>( &self, endpoint: &E, data: &I, path_params: &impl AsRef<[(&'a str, &'a str)]>, ) -> Result where I: Serialize + DeserializeOwned + Send + 'static, O: Serialize + DeserializeOwned + Send + 'static, E: Endpoint + Send + 'static; }