pub trait Handler {
// Required method
fn on_request(
&mut self,
request: Request,
response: Response,
) -> Result<Response, Error>;
// Provided methods
fn on_options(
&mut self,
_request: Request,
response: Response,
) -> Result<Response, Error> { ... }
fn on_response(
&mut self,
request: Request,
response: Response,
) -> Result<Response, Error> { ... }
}