Skip to content

Commit a9928a0

Browse files
authored
Merge pull request #56 from asaaki/isahc-metrics
Add isahc metrics to response if available
2 parents 50e0c7a + 8e9e318 commit a9928a0

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/isahc.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use super::{async_trait, Body, Error, HttpClient, Request, Response};
44

55
use async_std::io::BufReader;
6-
use isahc::http;
6+
use isahc::{http, ResponseExt};
77

88
/// Curl-based HTTP Client.
99
#[derive(Debug)]
@@ -46,12 +46,18 @@ impl HttpClient for IsahcClient {
4646

4747
let request = builder.body(body).unwrap();
4848
let res = self.0.send_async(request).await.map_err(Error::from)?;
49+
let maybe_metrics = res.metrics().cloned();
4950
let (parts, body) = res.into_parts();
5051
let body = Body::from_reader(BufReader::new(body), None);
5152
let mut response = http_types::Response::new(parts.status.as_u16());
5253
for (name, value) in &parts.headers {
5354
response.insert_header(name.as_str(), value.to_str().unwrap());
5455
}
56+
57+
if let Some(metrics) = maybe_metrics {
58+
response.ext_mut().insert(metrics);
59+
}
60+
5561
response.set_body(body);
5662
Ok(response)
5763
}

0 commit comments

Comments
 (0)