From dd8441fd23dae6ffb79b4cea2862e5bca0c59743 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Sun, 9 Aug 2020 00:29:22 +0200 Subject: [PATCH] wasm: impl TryFrom> for Request (#997) --- src/wasm/request.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/wasm/request.rs b/src/wasm/request.rs index 976ddfa..7b6ae27 100644 --- a/src/wasm/request.rs +++ b/src/wasm/request.rs @@ -1,7 +1,7 @@ use std::convert::TryFrom; use std::fmt; -use http::Method; +use http::{request::Parts, Method, Request as HttpRequest}; use url::Url; #[cfg(feature = "json")] use serde_json; @@ -300,3 +300,28 @@ fn fmt_request_fields<'a, 'b>( .field("url", &req.url) .field("headers", &req.headers) } + +impl TryFrom> for Request +where + T: Into, +{ + type Error = crate::Error; + + fn try_from(req: HttpRequest) -> crate::Result { + let (parts, body) = req.into_parts(); + let Parts { + method, + uri, + headers, + .. + } = parts; + let url = Url::parse(&uri.to_string()).map_err(crate::error::builder)?; + Ok(Request { + method, + url, + headers, + body: Some(body.into()), + cors: true, + }) + } +}