pub trait Request {
type Type: RequestType;
type Response: ResponseType + 'static;
// Required method
fn serialize(&self) -> Result<HttpRequest, Error>;
// Provided method
fn detach(&self) -> DetachedRequest<Self::Response> { ... }
}