@@ -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 } )
@@ -114,7 +114,7 @@ impl FromIterator<(Option<String>, HeaderValue)> for Headers {
114114}
115115
116116impl Headers {
117- pub fn into_iter ( self ) -> impl Iterator < Item = ( String , HeaderValue ) > {
117+ pub fn into_iter ( self ) -> impl Iterator < Item = ( Box < str > , Box < [ u8 ] > ) > {
118118 IntoIterator :: into_iter ( self . entries ) . map ( |HttpHeaderPair { name, value } | ( name, value) )
119119 }
120120}
@@ -123,16 +123,9 @@ impl Headers {
123123#[ sats( crate = crate , name = "HttpHeaderPair" ) ]
124124struct HttpHeaderPair {
125125 /// A valid HTTP header name, sourced from an already-validated [`http::HeaderName`].
126- name : String ,
127- value : HeaderValue ,
128- }
129-
130- /// A valid HTTP header value, sourced from an already-validated [`http::HeaderValue`].
131- #[ derive( Clone , SpacetimeType ) ]
132- #[ sats( crate = crate , name = "HttpHeaderValue" ) ]
133- pub struct HeaderValue {
134- pub bytes : Box < [ u8 ] > ,
135- pub is_sensitive : bool ,
126+ name : Box < str > ,
127+ /// A valid HTTP header value, sourced from an already-validated [`http::HeaderValue`].
128+ value : Box < [ u8 ] > ,
136129}
137130
138131#[ derive( Clone , SpacetimeType ) ]
0 commit comments