1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-27 17:52:56 +01:00
actix-web/actix_web/trait.FromRequest.html

219 lines
105 KiB
HTML
Raw Normal View History

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A type that implements `FromRequest` is called an extractor and can extract data from the request. Some types that implement this trait are: `Json`, `Header`, and `Path`."><title>FromRequest in actix_web - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="actix_web" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0-nightly (bdbbb6c6a 2024-05-26)" data-channel="nightly" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../actix_web/index.html"><img src="https://actix.rs/img/logo.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../actix_web/index.html"><img src="https://actix.rs/img/logo.png" alt="logo"></a><h2><a href="../actix_web/index.html">actix_web</a><span class="version">4.6.0</span></h2></div><h2 class="location"><a href="#">FromRequest</a></h2><div class="sidebar-elems"><section><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Error">Error</a></li><li><a href="#associatedtype.Future">Future</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.from_request">from_request</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.extract">extract</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-FromRequest-for-()">()</a></li><li><a href="#impl-FromRequest-for-(A,+B)">(A, B)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C)">(A, B, C)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D)">(A, B, C, D)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E)">(A, B, C, D, E)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F)">(A, B, C, D, E, F)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G)">(A, B, C, D, E, F, G)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H)">(A, B, C, D, E, F, G, H)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I)">(A, B, C, D, E, F, G, H, I)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)">(A, B, C, D, E, F, G, H, I, J)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)">(A, B, C, D, E, F, G, H, I, J, K)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)">(A, B, C, D, E, F, G, H, I, J, K, L)</a></li><li><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M)">(A, B, C, D, E, F, G, H, I, J, K, L, M)
type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;;
type <a href="#associatedtype.Future" class="associatedtype">Future</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;;
// Required method
fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a>;
// Provided method
fn <a href="#method.extract" class="fn">extract</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a> { ... }
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A type that implements <a href="trait.FromRequest.html" title="trait actix_web::FromRequest"><code>FromRequest</code></a> is called an <strong>extractor</strong> and can extract data from
the request. Some types that implement this trait are: <a href="web/struct.Json.html" title="struct actix_web::web::Json"><code>Json</code></a>, <a href="web/struct.Header.html" title="struct actix_web::web::Header"><code>Header</code></a>, and <a href="web/struct.Path.html" title="struct actix_web::web::Path"><code>Path</code></a>.</p>
<p>Check out <a href="dev/struct.ServiceRequest.html#method.extract" title="method actix_web::dev::ServiceRequest::extract"><code>ServiceRequest::extract</code></a> if you want to
leverage extractors when implementing middlewares.</p>
<h2 id="configuration"><a class="doc-anchor" href="#configuration">§</a>Configuration</h2>
<p>An extractor can be customized by injecting the corresponding configuration with one of:</p>
<ul>
<li><a href="struct.App.html#method.app_data" title="method actix_web::App::app_data"><code>App::app_data()</code></a></li>
<li><a href="struct.Scope.html#method.app_data" title="method actix_web::Scope::app_data"><code>Scope::app_data()</code></a></li>
<li><a href="struct.Resource.html#method.app_data" title="method actix_web::Resource::app_data"><code>Resource::app_data()</code></a></li>
</ul>
<p>Here are some built-in extractors and their corresponding configuration.
Please refer to the respective documentation for details.</p>
<div><table><thead><tr><th>Extractor</th><th>Configuration</th></tr></thead><tbody>
<tr><td><a href="web/struct.Header.html" title="struct actix_web::web::Header"><code>Header</code></a></td><td><em>None</em></td></tr>
<tr><td><a href="web/struct.Path.html" title="struct actix_web::web::Path"><code>Path</code></a></td><td><a href="web/struct.PathConfig.html" title="struct actix_web::web::PathConfig"><code>PathConfig</code></a></td></tr>
<tr><td><a href="web/struct.Json.html" title="struct actix_web::web::Json"><code>Json</code></a></td><td><a href="web/struct.JsonConfig.html" title="struct actix_web::web::JsonConfig"><code>JsonConfig</code></a></td></tr>
<tr><td><a href="web/struct.Form.html" title="struct actix_web::web::Form"><code>Form</code></a></td><td><a href="web/struct.FormConfig.html" title="struct actix_web::web::FormConfig"><code>FormConfig</code></a></td></tr>
<tr><td><a href="web/struct.Query.html" title="struct actix_web::web::Query"><code>Query</code></a></td><td><a href="web/struct.QueryConfig.html" title="struct actix_web::web::QueryConfig"><code>QueryConfig</code></a></td></tr>
<tr><td><a href="web/struct.Bytes.html#impl-FromRequest" title="struct actix_web::web::Bytes"><code>Bytes</code></a></td><td><a href="web/struct.PayloadConfig.html" title="struct actix_web::web::PayloadConfig"><code>PayloadConfig</code></a></td></tr>
<tr><td><a href="trait.FromRequest.html#impl-FromRequest-for-String" title="trait actix_web::FromRequest"><code>String</code></a></td><td><a href="web/struct.PayloadConfig.html" title="struct actix_web::web::PayloadConfig"><code>PayloadConfig</code></a></td></tr>
<tr><td><a href="web/struct.Payload.html" title="struct actix_web::web::Payload"><code>Payload</code></a></td><td><a href="web/struct.PayloadConfig.html" title="struct actix_web::web::PayloadConfig"><code>PayloadConfig</code></a></td></tr>
</tbody></table>
</div><h2 id="implementing-an-extractor"><a class="doc-anchor" href="#implementing-an-extractor">§</a>Implementing An Extractor</h2>
<p>To reduce duplicate code in handlers where extracting certain parts of a request has a common
structure, you can implement <code>FromRequest</code> for your own types.</p>
<p>Note that the request payload can only be consumed by one extractor.</p>
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Error" class="method"><a class="src rightside" href="../src/actix_web/extract.rs.html#67">source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>The associated error which can be returned.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Future" class="method"><a class="src rightside" href="../src/actix_web/extract.rs.html#86">source</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Future that resolves to a <code>Self</code>.</p>
<p>To use an async function or block, the futures must be boxed. The following snippet will be
common when creating async/await extractors (that do not consume the body).</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="kw">type </span>Future = Pin&lt;Box&lt;<span class="kw">dyn </span>Future&lt;Output = <span class="prelude-ty">Result</span>&lt;<span class="self">Self</span>, <span class="self">Self</span>::Error&gt;&gt;&gt;&gt;;
<span class="comment">// or
</span><span class="kw">type </span>Future = futures_util::future::LocalBoxFuture&lt;<span class="lifetime">'static</span>, <span class="prelude-ty">Result</span>&lt;<span class="self">Self</span>, <span class="self">Self</span>::Error&gt;&gt;;
<span class="kw">fn </span>from_request(req: HttpRequest, ...) -&gt; <span class="self">Self</span>::Future {
<span class="kw">let </span>req = req.clone();
Box::pin(<span class="kw">async move </span>{
...
})
}</code></pre></div>
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.from_request" class="method"><a class="src rightside" href="../src/actix_web/extract.rs.html#89">source</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></summary><div class="docblock"><p>Create a <code>Self</code> from request parts asynchronously.</p>
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.extract" class="method"><a class="src rightside" href="../src/actix_web/extract.rs.html#94-96">source</a><h4 class="code-header">fn <a href="#method.extract" class="fn">extract</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></summary><div class="docblock"><p>Create a <code>Self</code> from request head asynchronously.</p>
<p>This method is short for <code>T::from_request(req, &amp;mut Payload::None)</code>.</p>
</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-()" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#398-405">source</a><a href="#impl-FromRequest-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-1" class="associatedtype trait-impl"><a href="#associatedtype.Future-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, &lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a> as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section><section id="method.from_request" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#402-404">source</a><a href="#method.from_request" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(_: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, _: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-String" class="impl"><a class="src rightside" href="../src/actix_web/types/payload.rs.html#205-228">source</a><a href="#impl-FromRequest-for-String" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h3></section></summary><div class="docblock"><p>Extract text information from a requests body.</p>
<p>Text extractor automatically decode body according to the requests charset.</p>
<p>Use <a href="web/struct.PayloadConfig.html" title="struct actix_web::web::PayloadConfig"><code>PayloadConfig</code></a> to configure extraction process.</p>
<h4 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{post, web, FromRequest};
<span class="comment">// extract text data from request
</span><span class="attr">#[post(<span class="string">"/"</span>)]
</span><span class="kw">async fn </span>index(text: String) -&gt; String {
<span class="macro">format!</span>(<span class="string">"Body {}!"</span>, text)
}</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-2" class="associatedtype trait-impl"><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-2" class="associatedtype trait-impl"><a href="#associatedtype.Future-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Either&lt;StringExtractFut, Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;&gt;</h4></section><section id="method.from_request-1" class="method trait-impl"><a class="src rightside" href="../src/actix_web/types/payload.rs.html#210-227">source</a><a href="#method.from_request-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#407">source</a><a href="#impl-FromRequest-for-(A,)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A,)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-3" class="associatedtype trait-impl"><a href="#associatedtype.Error-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-3" class="associatedtype trait-impl"><a href="#associatedtype.Future-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest1&lt;A&gt;</h4></section><section id="method.from_request-2" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#407">source</a><a href="#method.from_request-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#408">source</a><a href="#impl-FromRequest-for-(A,+B)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-4" class="associatedtype trait-impl"><a href="#associatedtype.Error-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-4" class="associatedtype trait-impl"><a href="#associatedtype.Future-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest2&lt;A, B&gt;</h4></section><section id="method.from_request-3" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#408">source</a><a href="#method.from_request-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#409">source</a><a href="#impl-FromRequest-for-(A,+B,+C)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-5" class="associatedtype trait-impl"><a href="#associatedtype.Error-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-5" class="associatedtype trait-impl"><a href="#associatedtype.Future-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest3&lt;A, B, C&gt;</h4></section><section id="method.from_request-4" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#409">source</a><a href="#method.from_request-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#410">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-6" class="associatedtype trait-impl"><a href="#associatedtype.Error-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-6" class="associatedtype trait-impl"><a href="#associatedtype.Future-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest4&lt;A, B, C, D&gt;</h4></section><section id="method.from_request-5" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#410">source</a><a href="#method.from_request-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#411">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-7" class="associatedtype trait-impl"><a href="#associatedtype.Error-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-7" class="associatedtype trait-impl"><a href="#associatedtype.Future-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest5&lt;A, B, C, D, E&gt;</h4></section><section id="method.from_request-6" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#411">source</a><a href="#method.from_request-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#412">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-8" class="associatedtype trait-impl"><a href="#associatedtype.Error-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-8" class="associatedtype trait-impl"><a href="#associatedtype.Future-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest6&lt;A, B, C, D, E, F&gt;</h4></section><section id="method.from_request-7" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#412">source</a><a href="#method.from_request-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#413">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-9" class="associatedtype trait-impl"><a href="#associatedtype.Error-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-9" class="associatedtype trait-impl"><a href="#associatedtype.Future-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest7&lt;A, B, C, D, E, F, G&gt;</h4></section><section id="method.from_request-8" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#413">source</a><a href="#method.from_request-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#414">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-10" class="associatedtype trait-impl"><a href="#associatedtype.Error-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-10" class="associatedtype trait-impl"><a href="#associatedtype.Future-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest8&lt;A, B, C, D, E, F, G, H&gt;</h4></section><section id="method.from_request-9" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#414">source</a><a href="#method.from_request-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#415">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-11" class="associatedtype trait-impl"><a href="#associatedtype.Error-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-11" class="associatedtype trait-impl"><a href="#associatedtype.Future-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest9&lt;A, B, C, D, E, F, G, H, I&gt;</h4></section><section id="method.from_request-10" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#415">source</a><a href="#method.from_request-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#416">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-12" class="associatedtype trait-impl"><a href="#associatedtype.Error-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-12" class="associatedtype trait-impl"><a href="#associatedtype.Future-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest10&lt;A, B, C, D, E, F, G, H, I, J&gt;</h4></section><section id="method.from_request-11" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#416">source</a><a href="#method.from_request-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#417">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-13" class="associatedtype trait-impl"><a href="#associatedtype.Error-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-13" class="associatedtype trait-impl"><a href="#associatedtype.Future-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest11&lt;A, B, C, D, E, F, G, H, I, J, K&gt;</h4></section><section id="method.from_request-12" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#417">source</a><a href="#method.from_request-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#418">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-14" class="associatedtype trait-impl"><a href="#associatedtype.Error-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-14" class="associatedtype trait-impl"><a href="#associatedtype.Future-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest12&lt;A, B, C, D, E, F, G, H, I, J, K, L&gt;</h4></section><section id="method.from_request-13" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#418">source</a><a href="#method.from_request-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#419">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, M: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L, M)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-15" class="associatedtype trait-impl"><a href="#associatedtype.Error-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-15" class="associatedtype trait-impl"><a href="#associatedtype.Future-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest13&lt;A, B, C, D, E, F, G, H, I, J, K, L, M&gt;</h4></section><section id="method.from_request-14" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#419">source</a><a href="#method.from_request-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#420">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, M: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, N: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L, M, N)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-16" class="associatedtype trait-impl"><a href="#associatedtype.Error-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-16" class="associatedtype trait-impl"><a href="#associatedtype.Future-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest14&lt;A, B, C, D, E, F, G, H, I, J, K, L, M, N&gt;</h4></section><section id="method.from_request-15" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#420">source</a><a href="#method.from_request-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N,+O)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#421">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N,+O)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, M: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, N: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, O: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-17" class="associatedtype trait-impl"><a href="#associatedtype.Error-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-17" class="associatedtype trait-impl"><a href="#associatedtype.Future-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest15&lt;A, B, C, D, E, F, G, H, I, J, K, L, M, N, O&gt;</h4></section><section id="method.from_request-16" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#421">source</a><a href="#method.from_request-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N,+O,+P)" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#422">source</a><a href="#impl-FromRequest-for-(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L,+M,+N,+O,+P)" class="anchor">§</a><h3 class="code-header">impl&lt;A: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, B: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, C: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, D: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, E: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, F: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, G: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, H: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, I: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, J: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, K: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, M: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, N: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, O: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static, P: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)</a></h3></section></summary><div class="docblock"><p>FromRequest implementation for tuple</p>
</div><div class="impl-items"><section id="associatedtype.Error-18" class="associatedtype trait-impl"><a href="#associatedtype.Error-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-18" class="associatedtype trait-impl"><a href="#associatedtype.Future-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = TupleFromRequest16&lt;A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P&gt;</h4></section><section id="method.from_request-17" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#422">source</a><a href="#method.from_request-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Option%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#144-157">source</a><a href="#impl-FromRequest-for-Option%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;T&gt;<div class="where">where
T: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>,</div></h3></section></summary><div class="docblock"><p>Optionally extract from the request.</p>
<p>If the inner <code>T::from_request</code> returns an error, handler will receive <code>None</code> instead.</p>
<h4 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{web, dev, App, Error, HttpRequest, FromRequest};
<span class="kw">use </span>actix_web::error::ErrorBadRequest;
<span class="kw">use </span>futures_util::future::{ok, err, Ready};
<span class="kw">use </span>serde::Deserialize;
<span class="kw">use </span>rand;
<span class="attr">#[derive(Debug, Deserialize)]
</span><span class="kw">struct </span>Thing {
name: String
}
<span class="kw">impl </span>FromRequest <span class="kw">for </span>Thing {
<span class="kw">type </span>Error = Error;
<span class="kw">type </span>Future = Ready&lt;<span class="prelude-ty">Result</span>&lt;<span class="self">Self</span>, <span class="self">Self</span>::Error&gt;&gt;;
<span class="kw">fn </span>from_request(req: <span class="kw-2">&amp;</span>HttpRequest, payload: <span class="kw-2">&amp;mut </span>dev::Payload) -&gt; <span class="self">Self</span>::Future {
<span class="kw">if </span>rand::random() {
ok(Thing { name: <span class="string">"thingy"</span>.into() })
} <span class="kw">else </span>{
err(ErrorBadRequest(<span class="string">"no luck"</span>))
}
}
}
<span class="doccomment">/// extract `Thing` from request
</span><span class="kw">async fn </span>index(supplied_thing: <span class="prelude-ty">Option</span>&lt;Thing&gt;) -&gt; String {
<span class="kw">match </span>supplied_thing {
<span class="comment">// Puns not intended
</span><span class="prelude-val">Some</span>(thing) =&gt; <span class="macro">format!</span>(<span class="string">"Got something: {:?}"</span>, thing),
<span class="prelude-val">None </span>=&gt; <span class="macro">format!</span>(<span class="string">"No thing!"</span>)
}
}
<span class="kw">let </span>app = App::new().service(
web::resource(<span class="string">"/users/:first"</span>).route(
web::post().to(index))
);</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-19" class="associatedtype trait-impl"><a href="#associatedtype.Error-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-19" class="associatedtype trait-impl"><a href="#associatedtype.Future-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = FromRequestOptFuture&lt;&lt;T as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a>&gt;</h4></section><section id="method.from_request-18" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#152-156">source</a><a href="#method.from_request-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Result%3CT,+E%3E" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#229-244">source</a><a href="#impl-FromRequest-for-Result%3CT,+E%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T, E&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, E&gt;<div class="where">where
T: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>,
T::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;E&gt;,</div></h3></section></summary><div class="docblock"><p>Extract from the request, passing error type through to handler.</p>
<p>If the inner <code>T::from_request</code> returns an error, allow handler to receive the error rather than
immediately returning an error response.</p>
<h4 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{web, dev, App, <span class="prelude-ty">Result</span>, Error, HttpRequest, FromRequest};
<span class="kw">use </span>actix_web::error::ErrorBadRequest;
<span class="kw">use </span>futures_util::future::{ok, err, Ready};
<span class="kw">use </span>serde::Deserialize;
<span class="kw">use </span>rand;
<span class="attr">#[derive(Debug, Deserialize)]
</span><span class="kw">struct </span>Thing {
name: String
}
<span class="kw">impl </span>FromRequest <span class="kw">for </span>Thing {
<span class="kw">type </span>Error = Error;
<span class="kw">type </span>Future = Ready&lt;<span class="prelude-ty">Result</span>&lt;Thing, Error&gt;&gt;;
<span class="kw">fn </span>from_request(req: <span class="kw-2">&amp;</span>HttpRequest, payload: <span class="kw-2">&amp;mut </span>dev::Payload) -&gt; <span class="self">Self</span>::Future {
<span class="kw">if </span>rand::random() {
ok(Thing { name: <span class="string">"thingy"</span>.into() })
} <span class="kw">else </span>{
err(ErrorBadRequest(<span class="string">"no luck"</span>))
}
}
}
<span class="doccomment">/// extract `Thing` from request
</span><span class="kw">async fn </span>index(supplied_thing: <span class="prelude-ty">Result</span>&lt;Thing&gt;) -&gt; String {
<span class="kw">match </span>supplied_thing {
<span class="prelude-val">Ok</span>(thing) =&gt; <span class="macro">format!</span>(<span class="string">"Got thing: {thing:?}"</span>),
<span class="prelude-val">Err</span>(err) =&gt; <span class="macro">format!</span>(<span class="string">"Error extracting thing: {err}"</span>),
}
}
<span class="kw">let </span>app = App::new().service(
web::resource(<span class="string">"/users/:first"</span>).route(web::post().to(index))
);</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-20" class="associatedtype trait-impl"><a href="#associatedtype.Error-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-20" class="associatedtype trait-impl"><a href="#associatedtype.Future-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = FromRequestResFuture&lt;&lt;T as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a>, E&gt;</h4></section><section id="method.from_request-19" class="method trait-impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#238-243">source</a><a href="#method.from_request-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.from_request" class="fn">from_request</a>(req: &amp;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, payload: &amp;mut <a class="enum" href="dev/enum.Payload.html" title="enum actix_web::dev::Payload">Payload</a>) -&gt; Self::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Future" title="type actix_web::FromRequest::Future">Future</a></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-ConnectionInfo" class="impl"><a class="src rightside" href="../src/actix_web/info.rs.html#199-206">source</a><a href="#impl-FromRequest-for-ConnectionInfo" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="dev/struct.ConnectionInfo.html" title="struct actix_web::dev::ConnectionInfo">ConnectionInfo</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Error-21" class="associatedtype trait-impl"><a href="#associatedtype.Error-21" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-21" class="associatedtype trait-impl"><a href="#associatedtype.Future-21" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="dev/struct.ConnectionInfo.html" title="struct actix_web::dev::ConnectionInfo">ConnectionInfo</a>, &lt;<a class="struct" href="dev/struct.ConnectionInfo.html" title="struct actix_web::dev::ConnectionInfo">ConnectionInfo</a> as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-PeerAddr" class="impl"><a class="src rightside" href="../src/actix_web/info.rs.html#241-254">source</a><a href="#impl-FromRequest-for-PeerAddr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="dev/struct.PeerAddr.html" title="struct actix_web::dev::PeerAddr">PeerAddr</a></h3><
<h4 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{http::Method, web, App, Responder};
<span class="kw">async fn </span>handler(method: Method) -&gt; <span class="kw">impl </span>Responder {
<span class="macro">format!</span>(<span class="string">"Request method: {}"</span>, method)
}
<span class="kw">let </span>app = App::new().default_service(web::to(handler));</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-23" class="associatedtype trait-impl"><a href="#associatedtype.Error-23" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-23" class="associatedtype trait-impl"><a href="#associatedtype.Future-23" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="http/struct.Method.html" title="struct actix_web::http::Method">Method</a>, &lt;<a class="struct" href="http/struct.Method.html" title="struct actix_web::http::Method">Method</a> as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Uri" class="impl"><a class="src rightside" href="../src/actix_web/extract.rs.html#280-287">source</a><a href="#impl-FromRequest-for-Uri" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="http/struct.Uri.html" title="struct actix_web::http::Uri">Uri</a></h3></section></summary><div class="docblock"><p>Extract the requests URI.</p>
<h4 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{http::Uri, web, App, Responder};
<span class="kw">async fn </span>handler(uri: Uri) -&gt; <span class="kw">impl </span>Responder {
<span class="macro">format!</span>(<span class="string">"Requested path: {}"</span>, uri.path())
}
<span class="kw">let </span>app = App::new().default_service(web::to(handler));</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-24" class="associatedtype trait-impl"><a href="#associatedtype.Error-24" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section><section id="associatedtype.Future-24" class="associatedtype trait-impl"><a href="#associatedtype.Future-24" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="http/struct.Uri.html" title="struct actix_web::http::Uri">Uri</a>, &lt;<a class="struct" href="http/struct.Uri.html" title="struct actix_web::http::Uri">Uri</a> as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-HttpRequest" class="impl"><a class="src rightside" href="../src/actix_web/request.rs.html#419-427">source</a><a href="#impl-FromRequest-for-HttpRequest" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a></h3></section></summary><div class="docblock"><p>It is possible to get <code>HttpRequest</code> as an extractor handler parameter</p>
<h4 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{web, App, HttpRequest};
<span class="kw">use </span>serde::Deserialize;
<span class="doccomment">/// extract `Thing` from request
</span><span class="kw">async fn </span>index(req: HttpRequest) -&gt; String {
<span class="macro">format!</span>(<span class="string">"Got thing: {:?}"</span>, req)
}
<span class="kw">let </span>app = App::new().service(
web::resource(<span class="string">"/users/{first}"</span>).route(
web::get().to(index))
);</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-25" class="associatedtype trait-impl"><a href="#associatedtype.Error-25" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-25" class="associatedtype trait-impl"><a href="#associatedtype.Future-25" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.HttpRequest.html" title="struct actix_web::HttpRequest">HttpRequest</a>, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Bytes" class="impl"><a class="src rightside" href="../src/actix_web/types/payload.rs.html#158-175">source</a><a href="#impl-FromRequest-for-Bytes" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Bytes.html" title="struct actix_web::web::Bytes">Bytes</a></h3></section></summary><div class="docblock"><p>Extract binary data from a requests payload.</p>
<p>Collects request payload stream into a <a href="web/struct.Bytes.html" title="struct actix_web::web::Bytes">Bytes</a> instance.</p>
<p>Use <a href="web/struct.PayloadConfig.html" title="struct actix_web::web::PayloadConfig"><code>PayloadConfig</code></a> to configure extraction process.</p>
<h4 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>actix_web::{post, web};
<span class="doccomment">/// extract binary data from request
</span><span class="attr">#[post(<span class="string">"/"</span>)]
</span><span class="kw">async fn </span>index(body: web::Bytes) -&gt; String {
<span class="macro">format!</span>(<span class="string">"Body {:?}!"</span>, body)
}</code></pre></div>
</div><div class="impl-items"><section id="associatedtype.Error-26" class="associatedtype trait-impl"><a href="#associatedtype.Error-26" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-26" class="associatedtype trait-impl"><a href="#associatedtype.Future-26" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Either&lt;BytesExtractFut, Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Bytes.html" title="struct actix_web::web::Bytes">Bytes</a>, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Payload" class="impl"><a class="src rightside" href="../src/actix_web/types/payload.rs.html#132-140">source</a><a href="#impl-FromRequest-for-Payload" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Payload.html" title="struct actix_web::web::Payload">Payload</a></h3></section></summary><div class="docblock"><p>See <a href="#Examples">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-27" class="associatedtype trait-impl"><a href="#associatedtype.Error-27" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-27" class="associatedtype trait-impl"><a href="#associatedtype.Future-27" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Payload.html" title="struct actix_web::web::Payload">Payload</a>, &lt;<a class="struct" href="web/struct.Payload.html" title="struct actix_web::web::Payload">Payload</a> as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Either%3CL,+R%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/either.rs.html#167-183">source</a><a href="#impl-FromRequest-for-Either%3CL,+R%3E" class="anchor">§</a><h3 class="code-header">impl&lt;L, R&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="enum" href="web/enum.Either.html" title="enum actix_web::web::Either">Either</a>&lt;L, R&gt;<div class="where">where
L: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static,
R: <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> + 'static,</div></h3></section></summary><div class="docblock"><p>See <a href="#extractor">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-28" class="associatedtype trait-impl"><a href="#associatedtype.Error-28" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = EitherExtractError&lt;&lt;L as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>, &lt;R as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;</h4></section><section id="associatedtype.Future-28" class="associatedtype trait-impl"><a href="#associatedtype.Future-28" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = EitherExtractFut&lt;L, R&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Form%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/form.rs.html#124-141">source</a><a href="#impl-FromRequest-for-Form%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Form.html" title="struct actix_web::web::Form">Form</a>&lt;T&gt;<div class="where">where
T: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a> + 'static,</div></h3></section></summary><div class="docblock"><p>See <a href="#extractor">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-29" class="associatedtype trait-impl"><a href="#associatedtype.Error-29" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-29" class="associatedtype trait-impl"><a href="#associatedtype.Future-29" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = FormExtractFut&lt;T&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Header%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/header.rs.html#59-73">source</a><a href="#impl-FromRequest-for-Header%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Header.html" title="struct actix_web::web::Header">Header</a>&lt;T&gt;<div class="where">where
T: <a class="trait" href="http/header/trait.Header.html" title="trait actix_web::http::header::Header">ParseHeader</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Error-30" class="associatedtype trait-impl"><a href="#associatedtype.Error-30" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="error/enum.ParseError.html" title="enum actix_web::error::ParseError">ParseError</a></h4></section><section id="associatedtype.Future-30" class="associatedtype trait-impl"><a href="#associatedtype.Future-30" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Header.html" title="struct actix_web::web::Header">Header</a>&lt;T&gt;, &lt;<a class="struct" href="web/struct.Header.html" title="struct actix_web::web::Header">Header</a>&lt;T&gt; as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Path%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/path.rs.html#67-100">source</a><a href="#impl-FromRequest-for-Path%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Path.html" title="struct actix_web::web::Path">Path</a>&lt;T&gt;<div class="where">where
T: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a>,</div></h3></section></summary><div class="docblock"><p>See <a href="#Examples">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-31" class="associatedtype trait-impl"><a href="#associatedtype.Error-31" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-31" class="associatedtype trait-impl"><a href="#associatedtype.Future-31" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Path.html" title="struct actix_web::web::Path">Path</a>&lt;T&gt;, &lt;<a class="struct" href="web/struct.Path.html" title="struct actix_web::web::Path">Path</a>&lt;T&gt; as <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a>&gt;::<a class="associatedtype" href="trait.FromRequest.html#associatedtype.Error" title="type actix_web::FromRequest::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-ReqData%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/request_data.rs.html#67-86">source</a><a href="#impl-FromRequest-for-ReqData%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.ReqData.html" title="struct actix_web::web::ReqData">ReqData</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Error-32" class="associatedtype trait-impl"><a href="#associatedtype.Error-32" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-32" class="associatedtype trait-impl"><a href="#associatedtype.Future-32" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.ReqData.html" title="struct actix_web::web::ReqData">ReqData</a>&lt;T&gt;, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Json%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/json.rs.html#139-158">source</a><a href="#impl-FromRequest-for-Json%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a>&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Json.html" title="struct actix_web::web::Json">Json</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>See <a href="#extractor">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-33" class="associatedtype trait-impl"><a href="#associatedtype.Error-33" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-33" class="associatedtype trait-impl"><a href="#associatedtype.Future-33" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = JsonExtractFut&lt;T&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Query%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/types/query.rs.html#109-139">source</a><a href="#impl-FromRequest-for-Query%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: <a class="trait" href="https://docs.rs/serde/1.0.203/serde/de/trait.DeserializeOwned.html" title="trait serde::de::DeserializeOwned">DeserializeOwned</a>&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Query.html" title="struct actix_web::web::Query">Query</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>See <a href="#Examples">here</a> for example of usage as an extractor.</p>
</div><div class="impl-items"><section id="associatedtype.Error-34" class="associatedtype trait-impl"><a href="#associatedtype.Error-34" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-34" class="associatedtype trait-impl"><a href="#associatedtype.Future-34" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Query.html" title="struct actix_web::web::Query">Query</a>&lt;T&gt;, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-FromRequest-for-Data%3CT%3E" class="impl"><a class="src rightside" href="../src/actix_web/data.rs.html#160-183">source</a><a href="#impl-FromRequest-for-Data%3CT%3E" class="anchor">§</a><h3 class="code-header">impl&lt;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + 'static&gt; <a class="trait" href="trait.FromRequest.html" title="trait actix_web::FromRequest">FromRequest</a> for <a class="struct" href="web/struct.Data.html" title="struct actix_web::web::Data">Data</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Error-35" class="associatedtype trait-impl"><a href="#associatedtype.Error-35" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a></h4></section><section id="associatedtype.Future-35" class="associatedtype trait-impl"><a href="#associatedtype.Future-35" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a> = Ready&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="web/struct.Data.html" title="struct actix_web::web::Data">Data</a>&lt;T&gt;, <a class="struct" href="error/struct.Error.html" title="struct actix_web::error::Error">Error</a>&gt;&gt;</h4></section></div></details></div><script src="../trait.impl/actix_web/extract/trait.FromRequest.js" data-ignore-extern-crates="http,core,alloc,bytes,std" async></script></section></div></main></body></html>