better_fetch/backend/
reqwest.rs1use async_trait::async_trait;
2use reqwest::Client;
3
4use super::exec::send_reqwest;
5use super::{HttpBackend, HttpRequest, HttpResponse};
6use crate::Result;
7
8#[derive(Debug, Clone)]
10pub struct ReqwestBackend {
11 client: Client,
12}
13
14impl ReqwestBackend {
15 pub fn new(client: Client) -> Self {
17 Self { client }
18 }
19
20 pub fn client(&self) -> &Client {
22 &self.client
23 }
24}
25
26impl Default for ReqwestBackend {
27 fn default() -> Self {
28 Self::new(Client::new())
29 }
30}
31
32#[async_trait]
33impl HttpBackend for ReqwestBackend {
34 async fn execute(&self, request: HttpRequest) -> Result<HttpResponse> {
35 send_reqwest(&self.client, request).await
36 }
37}