@@ -76,15 +76,15 @@ pub struct Headers {
7676// `http::header::IntoIter` only returns the `HeaderName` for the first
7777// `HeaderValue` with that name, so we have to manually assign the names.
7878struct HeaderIter < I , T > {
79- prev : Option < ( String , T ) > ,
79+ prev : Option < ( Box < str > , T ) > ,
8080 inner : I ,
8181}
8282
8383impl < I , T > Iterator for HeaderIter < I , T >
8484where
85- I : Iterator < Item = ( Option < String > , T ) > ,
85+ I : Iterator < Item = ( Option < Box < str > > , T ) > ,
8686{
87- type Item = ( String , T ) ;
87+ type Item = ( Box < str > , T ) ;
8888
8989 fn next ( & mut self ) -> Option < Self :: Item > {
9090 let ( prev_k, prev_v) = self
@@ -103,8 +103,8 @@ where
103103 }
104104}
105105
106- impl FromIterator < ( Option < String > , HeaderValue ) > for Headers {
107- fn from_iter < T : IntoIterator < Item = ( Option < String > , HeaderValue ) > > ( iter : T ) -> Self {
106+ impl FromIterator < ( Option < Box < str > > , Box < [ u8 ] > ) > for Headers {
107+ fn from_iter < T : IntoIterator < Item = ( Option < Box < str > > , Box < [ u8 ] > ) > > ( iter : T ) -> Self {
108108 let inner = iter. into_iter ( ) ;
109109 let entries = HeaderIter { prev : None , inner }
110110 . map ( |( name, value) | HttpHeaderPair { name, value } )
@@ -115,7 +115,7 @@ impl FromIterator<(Option<String>, HeaderValue)> for Headers {
115115
116116impl Headers {
117117 #[ allow( clippy:: should_implement_trait) ]
118- pub fn into_iter ( self ) -> impl Iterator < Item = ( String , HeaderValue ) > {
118+ pub fn into_iter ( self ) -> impl Iterator < Item = ( Box < str > , Box < [ u8 ] > ) > {
119119 IntoIterator :: into_iter ( self . entries ) . map ( |HttpHeaderPair { name, value } | ( name, value) )
120120 }
121121}
@@ -124,16 +124,9 @@ impl Headers {
124124#[ sats( crate = crate , name = "HttpHeaderPair" ) ]
125125struct HttpHeaderPair {
126126 /// A valid HTTP header name, sourced from an already-validated [`http::HeaderName`].
127- name : String ,
128- value : HeaderValue ,
129- }
130-
131- /// A valid HTTP header value, sourced from an already-validated [`http::HeaderValue`].
132- #[ derive( Clone , SpacetimeType ) ]
133- #[ sats( crate = crate , name = "HttpHeaderValue" ) ]
134- pub struct HeaderValue {
135- pub bytes : Box < [ u8 ] > ,
136- pub is_sensitive : bool ,
127+ name : Box < str > ,
128+ /// A valid HTTP header value, sourced from an already-validated [`http::HeaderValue`].
129+ value : Box < [ u8 ] > ,
137130}
138131
139132#[ derive( Clone , SpacetimeType ) ]
0 commit comments