rama_http_types/proto/
mod.rs1use std::{ops::Deref, sync::Arc};
7
8use rama_core::extensions::Extension;
9
10use crate::HeaderMap;
11
12pub mod h1;
13pub mod h2;
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Extension)]
16#[extension(tags(http))]
17pub struct HeaderByteLength(pub usize);
19
20#[derive(Debug, Clone, Extension)]
21#[extension(tags(http))]
22pub struct RequestHeaders(Arc<HeaderMap>);
26
27impl From<HeaderMap> for RequestHeaders {
28 fn from(value: HeaderMap) -> Self {
29 Self(Arc::new(value))
30 }
31}
32
33impl Deref for RequestHeaders {
34 type Target = HeaderMap;
35
36 fn deref(&self) -> &Self::Target {
37 self.0.as_ref()
38 }
39}