pub trait GenericClient<RB>: Send + Sync {
// Required method
fn request(&self, method: Method, url: &str) -> RB;
// Provided methods
fn get(&self, url: &str) -> RB { ... }
fn post(&self, url: &str) -> RB { ... }
fn put(&self, url: &str) -> RB { ... }
fn patch(&self, url: &str) -> RB { ... }
fn delete(&self, url: &str) -> RB { ... }
fn head(&self, url: &str) -> RB { ... }
fn options(&self, url: &str) -> RB { ... }
}