Skip to content

Commit cc73cab

Browse files
committed
Return result from hyperium header conversion
1 parent 0937e60 commit cc73cab

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/hyperium_http.rs

+14-9
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ impl TryFrom<http::HeaderMap> for Headers {
102102
if let Some(name) = name {
103103
let value: HeaderValue = value.try_into()?;
104104
let name: HeaderName = name.try_into()?;
105-
headers.append(name, value);
105+
headers.append(name, value)?;
106106
}
107107
Ok(())
108108
})
@@ -140,16 +140,20 @@ impl TryFrom<Headers> for http::HeaderMap {
140140
}
141141
}
142142

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<()> {
144147
for (name, value) in hyperium_headers {
145148
let value = value.as_bytes().to_owned();
146149
let value = unsafe { HeaderValue::from_bytes_unchecked(value) };
147150
if let Some(name) = name {
148151
let name = name.as_str().as_bytes().to_owned();
149152
let name = unsafe { HeaderName::from_bytes_unchecked(name) };
150-
headers.append(name, value);
153+
headers.append(name, value)?;
151154
}
152155
}
156+
Ok(())
153157
}
154158

155159
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 {
176180
}
177181

178182
impl TryFrom<http::Request<Body>> for Request {
179-
type Error = crate::url::ParseError;
183+
type Error = crate::Error;
180184

181185
fn try_from(req: http::Request<Body>) -> Result<Self, Self::Error> {
182186
let (parts, body) = req.into_parts();
@@ -185,7 +189,7 @@ impl TryFrom<http::Request<Body>> for Request {
185189
let mut req = Request::new(method, url);
186190
req.set_body(body);
187191
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())?;
189193
Ok(req)
190194
}
191195
}
@@ -203,14 +207,15 @@ impl From<Request> for http::Request<Body> {
203207
}
204208
}
205209

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> {
208213
let (parts, body) = res.into_parts();
209214
let mut res = Response::new(parts.status);
210215
res.set_body(body);
211216
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)
214219
}
215220
}
216221

0 commit comments

Comments
 (0)