better_fetch/backend/
mod.rs1pub(crate) mod exec;
2mod reqwest;
3
4pub use reqwest::ReqwestBackend;
5
6use async_trait::async_trait;
7use bytes::Bytes;
8use http::{HeaderMap, Method, StatusCode};
9use std::time::Duration;
10
11use crate::Result;
12
13#[derive(Debug, Clone)]
15pub struct HttpRequest {
16 pub method: Method,
17 pub url: url::Url,
18 pub headers: HeaderMap,
19 pub body: Option<Bytes>,
20 pub timeout: Option<Duration>,
21}
22
23#[derive(Debug, Clone)]
25pub struct HttpResponse {
26 pub status: StatusCode,
27 pub headers: HeaderMap,
28 pub body: Bytes,
29}
30
31#[async_trait]
32pub trait HttpBackend: Send + Sync {
33 async fn execute(&self, request: HttpRequest) -> Result<HttpResponse>;
34}