Skip to main content

yevm_misc/
http.rs

1use serde::{Serialize, de::DeserializeOwned};
2
3pub struct Http(reqwest::Client);
4
5impl Default for Http {
6    fn default() -> Self {
7        Self::new()
8    }
9}
10
11impl Http {
12    pub fn new() -> Self {
13        Self(reqwest::Client::new())
14    }
15
16    pub async fn post<Q: Serialize, R: DeserializeOwned>(
17        &self,
18        url: &str,
19        body: &Q,
20    ) -> eyre::Result<R> {
21        let response = self.0.post(url).json(body).send().await?.json().await?;
22        Ok(response)
23    }
24}