mod akamai;
#[doc(inline)]
pub use akamai::{AkamaiH2, AkamaiH2ComputeError};
mod ja4;
#[doc(inline)]
pub use ja4::{Ja4H, Ja4HComputeError};
mod http_utils {
use private::HttpRequestProviderPriv;
use crate::{HeaderMap, Method, Version};
#[derive(Debug, Clone)]
pub struct HttpRequestInput {
pub header_map: HeaderMap,
pub http_method: Method,
pub version: Version,
}
pub trait HttpRequestProvider: HttpRequestProviderPriv {}
impl<P: HttpRequestProviderPriv> HttpRequestProvider for P {}
mod private {
use super::*;
use crate::Request;
pub trait HttpRequestProviderPriv {
fn http_request_input(self) -> HttpRequestInput;
}
impl<B> HttpRequestProviderPriv for &Request<B> {
fn http_request_input(self) -> HttpRequestInput {
HttpRequestInput {
header_map: self.headers().clone(),
http_method: self.method().clone(),
version: self.version(),
}
}
}
impl HttpRequestProviderPriv for HttpRequestInput {
#[inline(always)]
fn http_request_input(self) -> HttpRequestInput {
self
}
}
}
}
#[doc(inline)]
pub use http_utils::{HttpRequestInput, HttpRequestProvider};