use http::HeaderValue;
use serde::de::DeserializeOwned;
use crate::Result;
pub use http::header;
pub use http::HeaderMap;
mod reqwest;
mod ureq;
#[cfg(feature = "reqwest")]
pub use reqwest::*;
#[cfg(feature = "ureq")]
pub use ureq::*;
#[cfg(feature = "async")]
pub type AsyncResponse = ::reqwest::Response;
#[derive(Clone, Debug, Default)]
pub struct ClientOverride {
#[cfg(feature = "reqwest")]
pub(crate) blocking: Option<::reqwest::blocking::Client>,
#[cfg(feature = "async")]
pub(crate) r#async: Option<::reqwest::Client>,
#[cfg(feature = "ureq")]
pub(crate) agent: Option<::ureq::Agent>,
}
pub trait HttpResponse {
fn headers(&self) -> &HeaderMap<HeaderValue>;
fn body(self) -> impl std::io::Read;
fn json<T: DeserializeOwned>(self) -> Result<T>;
fn text(self) -> Result<String>;
}