pub trait Fetcher<'req> {
type Request;
type Response;
// Required methods
fn build_request(
&'req self,
url: &String,
headers: Vec<(String, String)>,
) -> Result<Self::Request, Error>;
fn send(
&'req self,
request: Self::Request,
) -> Result<(StatusCode, Self::Response), Error>;
fn parse_response(
&'req self,
response: Self::Response,
) -> Result<(String, Vec<(String, String)>), Error>;
}