use std::{ops::Deref, sync::Arc};
use rama_core::extensions::Extensions;
pub mod h1;
pub mod h2;
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub struct HeaderByteLength(pub usize);
#[derive(Debug, Clone)]
pub struct RequestHeaders(Arc<h1::Http1HeaderMap>);
impl From<h1::Http1HeaderMap> for RequestHeaders {
fn from(value: h1::Http1HeaderMap) -> Self {
Self(Arc::new(value))
}
}
impl Deref for RequestHeaders {
type Target = h1::Http1HeaderMap;
fn deref(&self) -> &Self::Target {
self.0.as_ref()
}
}
#[derive(Debug, Clone)]
pub struct RequestExtensions(Arc<Extensions>);
impl From<Extensions> for RequestExtensions {
fn from(value: Extensions) -> Self {
Self(Arc::new(value))
}
}
impl Deref for RequestExtensions {
type Target = Extensions;
fn deref(&self) -> &Self::Target {
self.0.as_ref()
}
}