use cfg_if::cfg_if;
cfg_if! {
if #[cfg(feature = "async")] {
mod async_client;
pub use self::async_client::AsyncClient;
use crate::responses::AsyncResponse;
use async_trait::async_trait;
#[async_trait]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub trait AsyncRequests: HttpClient {
async fn send(&self, request: Request) -> Result<AsyncResponse, FeroxFuzzError>;
}
}
}
cfg_if! {
if #[cfg(feature = "blocking")] {
mod blocking_client;
pub use self::blocking_client::BlockingClient;
use crate::responses::BlockingResponse;
#[cfg_attr(docsrs, doc(cfg(feature = "blocking")))]
pub trait BlockingRequests: HttpClient {
fn send(&self, request: Request) -> Result<BlockingResponse, FeroxFuzzError>;
}
}
}
#[cfg(feature = "reqwest")]
mod utils;
use crate::error::FeroxFuzzError;
use crate::requests::Request;
pub trait HttpClient {
type ClientType;
fn with_client(client: Self::ClientType) -> Self;
}