@@ -102,7 +102,7 @@ impl TryFrom<http::HeaderMap> for Headers {
102
102
if let Some ( name) = name {
103
103
let value: HeaderValue = value. try_into ( ) ?;
104
104
let name: HeaderName = name. try_into ( ) ?;
105
- headers. append ( name, value) ;
105
+ headers. append ( name, value) ? ;
106
106
}
107
107
Ok ( ( ) )
108
108
} )
@@ -140,16 +140,20 @@ impl TryFrom<Headers> for http::HeaderMap {
140
140
}
141
141
}
142
142
143
- fn hyperium_headers_to_headers ( hyperium_headers : http:: HeaderMap , headers : & mut Headers ) {
143
+ fn hyperium_headers_to_headers (
144
+ hyperium_headers : http:: HeaderMap ,
145
+ headers : & mut Headers ,
146
+ ) -> crate :: Result < ( ) > {
144
147
for ( name, value) in hyperium_headers {
145
148
let value = value. as_bytes ( ) . to_owned ( ) ;
146
149
let value = unsafe { HeaderValue :: from_bytes_unchecked ( value) } ;
147
150
if let Some ( name) = name {
148
151
let name = name. as_str ( ) . as_bytes ( ) . to_owned ( ) ;
149
152
let name = unsafe { HeaderName :: from_bytes_unchecked ( name) } ;
150
- headers. append ( name, value) ;
153
+ headers. append ( name, value) ? ;
151
154
}
152
155
}
156
+ Ok ( ( ) )
153
157
}
154
158
155
159
fn headers_to_hyperium_headers ( headers : & mut Headers , hyperium_headers : & mut http:: HeaderMap ) {
@@ -176,7 +180,7 @@ fn from_url_to_uri(url: &Url) -> http::Uri {
176
180
}
177
181
178
182
impl TryFrom < http:: Request < Body > > for Request {
179
- type Error = crate :: url :: ParseError ;
183
+ type Error = crate :: Error ;
180
184
181
185
fn try_from ( req : http:: Request < Body > ) -> Result < Self , Self :: Error > {
182
186
let ( parts, body) = req. into_parts ( ) ;
@@ -185,7 +189,7 @@ impl TryFrom<http::Request<Body>> for Request {
185
189
let mut req = Request :: new ( method, url) ;
186
190
req. set_body ( body) ;
187
191
req. set_version ( Some ( parts. version . into ( ) ) ) ;
188
- hyperium_headers_to_headers ( parts. headers , req. as_mut ( ) ) ;
192
+ hyperium_headers_to_headers ( parts. headers , req. as_mut ( ) ) ? ;
189
193
Ok ( req)
190
194
}
191
195
}
@@ -203,14 +207,15 @@ impl From<Request> for http::Request<Body> {
203
207
}
204
208
}
205
209
206
- impl From < http:: Response < Body > > for Response {
207
- fn from ( res : http:: Response < Body > ) -> Self {
210
+ impl TryFrom < http:: Response < Body > > for Response {
211
+ type Error = crate :: Error ;
212
+ fn try_from ( res : http:: Response < Body > ) -> Result < Self , Self :: Error > {
208
213
let ( parts, body) = res. into_parts ( ) ;
209
214
let mut res = Response :: new ( parts. status ) ;
210
215
res. set_body ( body) ;
211
216
res. set_version ( Some ( parts. version . into ( ) ) ) ;
212
- hyperium_headers_to_headers ( parts. headers , res. as_mut ( ) ) ;
213
- res
217
+ hyperium_headers_to_headers ( parts. headers , res. as_mut ( ) ) ? ;
218
+ Ok ( res)
214
219
}
215
220
}
216
221
0 commit comments