pub trait Client: Clone {
type Error: Debug;
// Required method
fn request_with_body_and_query<B, Q, R>(
&self,
method: Method,
path: &str,
body: Option<&B>,
query: Option<&Q>,
) -> Result<R, Self::Error>
where B: Serialize,
Q: Serialize,
R: DeserializeOwned;
// Provided methods
fn request_with_body<B, R>(
&self,
method: Method,
path: &str,
body: &B,
) -> Result<R, Self::Error>
where B: Serialize,
R: DeserializeOwned { ... }
fn request_with_query<Q, R>(
&self,
method: Method,
path: &str,
query: &Q,
) -> Result<R, Self::Error>
where Q: Serialize,
R: DeserializeOwned { ... }
fn put<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>
where B: Serialize,
R: DeserializeOwned { ... }
fn post<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>
where B: Serialize,
R: DeserializeOwned { ... }
fn delete<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>
where B: Serialize,
R: DeserializeOwned { ... }
fn get<Q, R>(&self, path: &str, query: &Q) -> Result<R, Self::Error>
where Q: Serialize,
R: DeserializeOwned { ... }
}
Required Associated Types§
Required Methods§
Provided Methods§
fn request_with_body<B, R>(
&self,
method: Method,
path: &str,
body: &B,
) -> Result<R, Self::Error>where
B: Serialize,
R: DeserializeOwned,
fn request_with_query<Q, R>(
&self,
method: Method,
path: &str,
query: &Q,
) -> Result<R, Self::Error>where
Q: Serialize,
R: DeserializeOwned,
fn put<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>where
B: Serialize,
R: DeserializeOwned,
fn post<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>where
B: Serialize,
R: DeserializeOwned,
fn delete<B, R>(&self, path: &str, body: &B) -> Result<R, Self::Error>where
B: Serialize,
R: DeserializeOwned,
fn get<Q, R>(&self, path: &str, query: &Q) -> Result<R, Self::Error>where
Q: Serialize,
R: DeserializeOwned,
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.