#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
use crate::{errors::DeboaError, request::IntoRequest, response::DeboaResponse};
use std::{fmt::Display, future::Future};
pub mod cache;
pub mod cert;
pub mod conn;
pub mod cookie;
pub mod dns;
pub mod errors;
pub mod form;
pub mod request;
pub mod response;
pub mod serde;
#[cfg(test)]
mod tests;
pub mod url;
pub type Result<T> = std::result::Result<T, DeboaError>;
#[derive(PartialEq, Debug, Clone)]
pub enum HttpVersion {
Http1,
Http2,
Http3,
}
impl Display for HttpVersion {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
HttpVersion::Http1 => write!(f, "HTTP/1.1"),
HttpVersion::Http2 => write!(f, "HTTP/2"),
HttpVersion::Http3 => write!(f, "HTTP/3"),
}
}
}
pub trait HttpClient {
fn execute<R>(&self, request: R) -> impl Future<Output = Result<DeboaResponse>>
where
R: IntoRequest;
}