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