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

176 lines
84 KiB
HTML

<!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="An asynchronous operation from `Request` to a `Response`."><title>Service in actix_web::dev - 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="#">Service</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><li><a href="#associatedtype.Response">Response</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.call">call</a></li><li><a href="#tymethod.poll_ready">poll_ready</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Service%3CReq%3E-for-%26S">&amp;&#x27;a S</a></li><li><a href="#impl-Service%3CReq%3E-for-%26mut+S">&amp;&#x27;a mut S</a></li><li><a href="#impl-Service%3CIO%3E-for-AcceptorService">AcceptorService</a></li><li><a href="#impl-Service%3CIO%3E-for-AcceptorService">AcceptorService</a></li><li><a href="#impl-Service%3CIO%3E-for-AcceptorService">AcceptorService</a></li><li><a href="#impl-Service%3CIO%3E-for-AcceptorService">AcceptorService</a></li><li><a href="#impl-Service%3CIO%3E-for-AcceptorService">AcceptorService</a></li><li><a href="#impl-Service%3CReq%3E-for-Box%3CS%3E">Box&lt;S&gt;</a></li><li><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-ConnectorService">ConnectorService</a></li><li><a href="#impl-Service%3CRequest%3E-for-ExpectHandler">ExpectHandler</a></li><li><a href="#impl-Service%3CReq%3E-for-Rc%3CS%3E">Rc&lt;S&gt;</a></li><li><a href="#impl-Service%3CReq%3E-for-RefCell%3CS%3E">RefCell&lt;S&gt;</a></li><li><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-ResolverService">ResolverService</a></li><li><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-TcpConnectorService">TcpConnectorService</a></li><li><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService">TlsConnectorService</a></li><li><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService">TlsConnectorService</a></li><li><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService">TlsConnectorService</a></li><li><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService">TlsConnectorService</a></li><li><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService">TlsConnectorService</a></li><li><a href="#impl-Service%3C(Request,+Framed%3CT,+Codec%3E)%3E-for-UpgradeHandler">UpgradeHandler</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In actix_web::dev</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="../index.html">actix_web</a>::<wbr><a href="index.html">dev</a>::<wbr><a class="trait" href="#">Service</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait Service&lt;Req&gt; {
type <a href="#associatedtype.Response" class="associatedtype">Response</a>;
type <a href="#associatedtype.Error" class="associatedtype">Error</a>;
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::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;;
// Required methods
fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(&amp;self, ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Req) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An asynchronous operation from <code>Request</code> to a <code>Response</code>.</p>
<p>The <code>Service</code> trait models a request/response interaction, receiving requests and returning
replies. You can think about a service as a function with one argument that returns some result
asynchronously. Conceptually, the operation looks like this:</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">async fn</span>(Request) -&gt; <span class="prelude-ty">Result</span>&lt;Response, <span class="prelude-val">Err</span>&gt;</code></pre></div>
<p>The <code>Service</code> trait just generalizes this form. Requests are defined as a generic type parameter
and responses and other details are defined as associated types on the trait impl. Notice that
this design means that services can receive many request types and converge them to a single
response type.</p>
<p>Services can also have mutable state that influence computation by using a <code>Cell</code>, <code>RefCell</code>
or <code>Mutex</code>. Services intentionally do not take <code>&amp;mut self</code> to reduce overhead in the
common cases.</p>
<p><code>Service</code> provides a symmetric and uniform API; the same abstractions can be used to represent
both clients and servers. Services describe only <em>transformation</em> operations which encourage
simple API surfaces. This leads to simpler design of each service, improves test-ability and
makes composition easier.</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">struct </span>MyService;
<span class="kw">impl </span>Service&lt;u8&gt; <span class="kw">for </span>MyService {
<span class="kw">type </span>Response = u64;
<span class="kw">type </span>Error = MyError;
<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>::Response, <span class="self">Self</span>::Error&gt;&gt;&gt;&gt;;
<span class="kw">fn </span>poll_ready(<span class="kw-2">&amp;</span><span class="self">self</span>, cx: <span class="kw-2">&amp;mut </span>Context&lt;<span class="lifetime">'_</span>&gt;) -&gt; Poll&lt;<span class="prelude-ty">Result</span>&lt;(), <span class="self">Self</span>::Error&gt;&gt; { ... }
<span class="kw">fn </span>call(<span class="kw-2">&amp;</span><span class="self">self</span>, req: u8) -&gt; <span class="self">Self</span>::Future { ... }
}</code></pre></div>
<p>Sometimes it is not necessary to implement the Service trait. For example, the above service
could be rewritten as a simple function and passed to <a href="fn.fn_service.html" title="fn actix_web::dev::fn_service"><code>fn_service</code></a>.</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">async fn </span>my_service(req: u8) -&gt; <span class="prelude-ty">Result</span>&lt;u64, MyError&gt;;
<span class="kw">let </span>svc = fn_service(my_service)
svc.call(<span class="number">123</span>)</code></pre></div>
</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.Response" class="method"><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a></h4></section></summary><div class="docblock"><p>Responses given by the service.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Error" class="method"><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a></h4></section></summary><div class="docblock"><p>Errors produced by the service when polling readiness or executing call.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Future" class="method"><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::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>The future response value.</p>
</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.poll_ready" class="method"><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(&amp;self, ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Returns <code>Ready</code> when the service is able to process requests.</p>
<p>If the service is at capacity, then <code>Pending</code> is returned and the task is notified when the
service becomes ready again. This function is expected to be called while on a task.</p>
<p>This is a best effort implementation. False positives are permitted. It is permitted for
the service to return <code>Ready</code> from a <code>poll_ready</code> call and the next invocation of <code>call</code>
results in an error.</p>
<h5 id="notes"><a class="doc-anchor" href="#notes">§</a>Notes</h5>
<ol>
<li><code>poll_ready</code> might be called on a different task to <code>call</code>.</li>
<li>In cases of chained services, <code>.poll_ready()</code> is called for all services at once.</li>
</ol>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.call" class="method"><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Req) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></summary><div class="docblock"><p>Process the request and return the response asynchronously.</p>
<p>This function is expected to be callable off-task. As such, implementations of <code>call</code> should
take care to not call <code>poll_ready</code>. If the service is at capacity and the request is unable
to be handled, the returned <code>Future</code> should resolve to an error.</p>
<p>Invoking <code>call</code> without first invoking <code>poll_ready</code> is permitted. Implementations must be
resilient to this fact.</p>
</div></details></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-Service%3CRequest%3E-for-ExpectHandler" class="impl"><a class="src rightside" href="../../src/actix_http/h1/expect.rs.html#21">source</a><a href="#impl-Service%3CRequest%3E-for-ExpectHandler" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>&gt; for <a class="struct" href="../../actix_http/h1/expect/struct.ExpectHandler.html" title="struct actix_http::h1::expect::ExpectHandler">ExpectHandler</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-1" class="associatedtype trait-impl"><a href="#associatedtype.Response-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = <a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a></h4></section><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="struct" href="../http/struct.Error.html" title="struct actix_web::http::Error">Error</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;&lt;<a class="struct" href="../../actix_http/h1/expect/struct.ExpectHandler.html" title="struct actix_http::h1::expect::ExpectHandler">ExpectHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a>, &lt;<a class="struct" href="../../actix_http/h1/expect/struct.ExpectHandler.html" title="struct actix_http::h1::expect::ExpectHandler">ExpectHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.poll_ready" class="method trait-impl"><a class="src rightside" href="../../src/actix_http/h1/expect.rs.html#26">source</a><a href="#method.poll_ready" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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="struct" href="../../actix_http/h1/expect/struct.ExpectHandler.html" title="struct actix_http::h1::expect::ExpectHandler">ExpectHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call" class="method trait-impl"><a class="src rightside" href="../../src/actix_http/h1/expect.rs.html#28">source</a><a href="#method.call" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: <a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>) -&gt; &lt;<a class="struct" href="../../actix_http/h1/expect/struct.ExpectHandler.html" title="struct actix_http::h1::expect::ExpectHandler">ExpectHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CReq%3E-for-%26S" class="impl"><a href="#impl-Service%3CReq%3E-for-%26S" class="anchor">§</a><h3 class="code-header">impl&lt;'a, S, Req&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a S</a><div class="where">where
S: <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; + 'a,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-2" class="associatedtype trait-impl"><a href="#associatedtype.Response-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a></h4></section><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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section><section id="method.poll_ready-1" class="method trait-impl"><a href="#method.poll_ready-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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.reference.html">&amp;'a S</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-1" class="method trait-impl"><a href="#method.call-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, request: Req) -&gt; &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CReq%3E-for-%26mut+S" class="impl"><a href="#impl-Service%3CReq%3E-for-%26mut+S" class="anchor">§</a><h3 class="code-header">impl&lt;'a, S, Req&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut S</a><div class="where">where
S: <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; + 'a,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-3" class="associatedtype trait-impl"><a href="#associatedtype.Response-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a></h4></section><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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section><section id="method.poll_ready-2" class="method trait-impl"><a href="#method.poll_ready-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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.reference.html">&amp;'a mut S</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-2" class="method trait-impl"><a href="#method.call-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, request: Req) -&gt; &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CIO%3E-for-AcceptorService" class="impl"><a href="#impl-Service%3CIO%3E-for-AcceptorService" class="anchor">§</a><h3 class="code-header">impl&lt;IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt; for AcceptorService<div class="where">where
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-4" class="associatedtype trait-impl"><a href="#associatedtype.Response-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = TlsStream&lt;IO&gt;</h4></section><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> = TlsError&lt;<a class="struct" href="https://docs.rs/openssl/0.10/openssl/ssl/error/struct.Error.html" title="struct openssl::ssl::error::Error">Error</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</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> = AcceptFut&lt;IO&gt;</h4></section><section id="method.poll_ready-3" class="method trait-impl"><a href="#method.poll_ready-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-3" class="method trait-impl"><a href="#method.call-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, io: IO) -&gt; &lt;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CIO%3E-for-AcceptorService-1" class="impl"><a href="#impl-Service%3CIO%3E-for-AcceptorService-1" class="anchor">§</a><h3 class="code-header">impl&lt;IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt; for AcceptorService<div class="where">where
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-5" class="associatedtype trait-impl"><a href="#associatedtype.Response-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = TlsStream&lt;IO&gt;</h4></section><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> = TlsError&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</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> = AcceptFut&lt;IO&gt;</h4></section><section id="method.poll_ready-4" class="method trait-impl"><a href="#method.poll_ready-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-4" class="method trait-impl"><a href="#method.call-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: IO) -&gt; &lt;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CIO%3E-for-AcceptorService-2" class="impl"><a href="#impl-Service%3CIO%3E-for-AcceptorService-2" class="anchor">§</a><h3 class="code-header">impl&lt;IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt; for AcceptorService<div class="where">where
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-6" class="associatedtype trait-impl"><a href="#associatedtype.Response-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = TlsStream&lt;IO&gt;</h4></section><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> = TlsError&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</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> = AcceptFut&lt;IO&gt;</h4></section><section id="method.poll_ready-5" class="method trait-impl"><a href="#method.poll_ready-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-5" class="method trait-impl"><a href="#method.call-5" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: IO) -&gt; &lt;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CIO%3E-for-AcceptorService-3" class="impl"><a href="#impl-Service%3CIO%3E-for-AcceptorService-3" class="anchor">§</a><h3 class="code-header">impl&lt;IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt; for AcceptorService<div class="where">where
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-7" class="associatedtype trait-impl"><a href="#associatedtype.Response-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = TlsStream&lt;IO&gt;</h4></section><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> = TlsError&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</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> = AcceptFut&lt;IO&gt;</h4></section><section id="method.poll_ready-6" class="method trait-impl"><a href="#method.poll_ready-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-6" class="method trait-impl"><a href="#method.call-6" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: IO) -&gt; &lt;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CIO%3E-for-AcceptorService-4" class="impl"><a href="#impl-Service%3CIO%3E-for-AcceptorService-4" class="anchor">§</a><h3 class="code-header">impl&lt;IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt; for AcceptorService<div class="where">where
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-8" class="associatedtype trait-impl"><a href="#associatedtype.Response-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = TlsStream&lt;IO&gt;</h4></section><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> = TlsError&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a>&gt;</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> = AcceptFut&lt;IO&gt;</h4></section><section id="method.poll_ready-7" class="method trait-impl"><a href="#method.poll_ready-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-7" class="method trait-impl"><a href="#method.call-7" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: IO) -&gt; &lt;AcceptorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;IO&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnectInfo%3CR%3E%3E-for-ConnectorService" class="impl"><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-ConnectorService" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt; for ConnectorService<div class="where">where
R: Host,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-9" class="associatedtype trait-impl"><a href="#associatedtype.Response-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, <a class="struct" href="../rt/net/struct.TcpStream.html" title="struct actix_web::rt::net::TcpStream">TcpStream</a>&gt;</h4></section><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> = ConnectError</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> = ConnectServiceResponse&lt;R&gt;</h4></section><section id="method.poll_ready-8" class="method trait-impl"><a href="#method.poll_ready-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;ConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-8" class="method trait-impl"><a href="#method.call-8" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
req: ConnectInfo&lt;R&gt;
) -&gt; &lt;ConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnectInfo%3CR%3E%3E-for-ResolverService" class="impl"><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-ResolverService" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt; for ResolverService<div class="where">where
R: Host,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-10" class="associatedtype trait-impl"><a href="#associatedtype.Response-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = ConnectInfo&lt;R&gt;</h4></section><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> = ConnectError</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> = ResolverFut&lt;R&gt;</h4></section><section id="method.poll_ready-9" class="method trait-impl"><a href="#method.poll_ready-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;ResolverService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-9" class="method trait-impl"><a href="#method.call-9" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
req: ConnectInfo&lt;R&gt;
) -&gt; &lt;ResolverService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnectInfo%3CR%3E%3E-for-TcpConnectorService" class="impl"><a href="#impl-Service%3CConnectInfo%3CR%3E%3E-for-TcpConnectorService" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt; for TcpConnectorService<div class="where">where
R: Host,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-11" class="associatedtype trait-impl"><a href="#associatedtype.Response-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, <a class="struct" href="../rt/net/struct.TcpStream.html" title="struct actix_web::rt::net::TcpStream">TcpStream</a>&gt;</h4></section><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> = ConnectError</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> = TcpConnectorFut&lt;R&gt;</h4></section><section id="method.poll_ready-10" class="method trait-impl"><a href="#method.poll_ready-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TcpConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-10" class="method trait-impl"><a href="#method.call-10" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
req: ConnectInfo&lt;R&gt;
) -&gt; &lt;TcpConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;ConnectInfo&lt;R&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService" class="impl"><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService" class="anchor">§</a><h3 class="code-header">impl&lt;R, IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt; for TlsConnectorService<div class="where">where
R: Host,
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-12" class="associatedtype trait-impl"><a href="#associatedtype.Response-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, TlsStream&lt;IO&gt;&gt;</h4></section><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="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::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> = ConnectFut&lt;R, IO&gt;</h4></section><section id="method.poll_ready-11" class="method trait-impl"><a href="#method.poll_ready-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-11" class="method trait-impl"><a href="#method.call-11" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
connection: Connection&lt;R, IO&gt;
) -&gt; &lt;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-1" class="impl"><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-1" class="anchor">§</a><h3 class="code-header">impl&lt;R, IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt; for TlsConnectorService<div class="where">where
R: Host,
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-13" class="associatedtype trait-impl"><a href="#associatedtype.Response-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, TlsStream&lt;IO&gt;&gt;</h4></section><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="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::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> = ConnectFut&lt;R, IO&gt;</h4></section><section id="method.poll_ready-12" class="method trait-impl"><a href="#method.poll_ready-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-12" class="method trait-impl"><a href="#method.call-12" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
connection: Connection&lt;R, IO&gt;
) -&gt; &lt;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-2" class="impl"><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-2" class="anchor">§</a><h3 class="code-header">impl&lt;R, IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt; for TlsConnectorService<div class="where">where
R: Host,
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-14" class="associatedtype trait-impl"><a href="#associatedtype.Response-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, SslStream&lt;IO&gt;&gt;</h4></section><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="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::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> = ConnectFut&lt;R, IO&gt;</h4></section><section id="method.poll_ready-13" class="method trait-impl"><a href="#method.poll_ready-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-13" class="method trait-impl"><a href="#method.call-13" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
stream: Connection&lt;R, IO&gt;
) -&gt; &lt;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-3" class="impl"><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-3" class="anchor">§</a><h3 class="code-header">impl&lt;R, IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt; for TlsConnectorService<div class="where">where
R: Host,
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-15" class="associatedtype trait-impl"><a href="#associatedtype.Response-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, TlsStream&lt;IO&gt;&gt;</h4></section><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="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::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> = ConnectFut&lt;R, IO&gt;</h4></section><section id="method.poll_ready-14" class="method trait-impl"><a href="#method.poll_ready-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-14" class="method trait-impl"><a href="#method.call-14" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
connection: Connection&lt;R, IO&gt;
) -&gt; &lt;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-4" class="impl"><a href="#impl-Service%3CConnection%3CR,+IO%3E%3E-for-TlsConnectorService-4" class="anchor">§</a><h3 class="code-header">impl&lt;R, IO&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt; for TlsConnectorService<div class="where">where
R: Host,
IO: ActixStream,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-16" class="associatedtype trait-impl"><a href="#associatedtype.Response-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = Connection&lt;R, TlsStream&lt;IO&gt;&gt;</h4></section><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="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::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> = ConnectFut&lt;R, IO&gt;</h4></section><section id="method.poll_ready-15" class="method trait-impl"><a href="#method.poll_ready-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-15" class="method trait-impl"><a href="#method.call-15" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
connection: Connection&lt;R, IO&gt;
) -&gt; &lt;TlsConnectorService as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Connection&lt;R, IO&gt;&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CReq%3E-for-Box%3CS%3E" class="impl"><a href="#impl-Service%3CReq%3E-for-Box%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S, Req&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-17" class="associatedtype trait-impl"><a href="#associatedtype.Response-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a></h4></section><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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section><section id="method.poll_ready-16" class="method trait-impl"><a href="#method.poll_ready-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-16" class="method trait-impl"><a href="#method.call-16" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, request: Req) -&gt; &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CReq%3E-for-Rc%3CS%3E" class="impl"><a href="#impl-Service%3CReq%3E-for-Rc%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S, Req&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-18" class="associatedtype trait-impl"><a href="#associatedtype.Response-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a></h4></section><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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section><section id="method.poll_ready-17" class="method trait-impl"><a href="#method.poll_ready-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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="struct" href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;S&gt; as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-17" class="method trait-impl"><a href="#method.call-17" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, request: Req) -&gt; &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CReq%3E-for-RefCell%3CS%3E" class="impl"><a href="#impl-Service%3CReq%3E-for-RefCell%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S, Req&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/core/cell/struct.RefCell.html" title="struct core::cell::RefCell">RefCell</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;,</div></h3></section></summary><div class="docblock"><p>This impl is deprecated since v2 because the <code>Service</code> trait now receives shared reference.</p>
</div><div class="impl-items"><section id="associatedtype.Response-19" class="associatedtype trait-impl"><a href="#associatedtype.Response-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a></h4></section><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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</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> = &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section><section id="method.poll_ready-18" class="method trait-impl"><a href="#method.poll_ready-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
ctx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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="struct" href="https://doc.rust-lang.org/nightly/core/cell/struct.RefCell.html" title="struct core::cell::RefCell">RefCell</a>&lt;S&gt; as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-18" class="method trait-impl"><a href="#method.call-18" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, request: Req) -&gt; &lt;S as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;Req&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3C(Request,+Framed%3CT,+Codec%3E)%3E-for-UpgradeHandler" class="impl"><a class="src rightside" href="../../src/actix_http/h1/upgrade.rs.html#22">source</a><a href="#impl-Service%3C(Request,+Framed%3CT,+Codec%3E)%3E-for-UpgradeHandler" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;(<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)&gt; for <a class="struct" href="../../actix_http/h1/upgrade/struct.UpgradeHandler.html" title="struct actix_http::h1::upgrade::UpgradeHandler">UpgradeHandler</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-20" class="associatedtype trait-impl"><a href="#associatedtype.Response-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Response" class="associatedtype">Response</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><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="struct" href="../http/struct.Error.html" title="struct actix_web::http::Error">Error</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> = <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <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;&lt;<a class="struct" href="../../actix_http/h1/upgrade/struct.UpgradeHandler.html" title="struct actix_http::h1::upgrade::UpgradeHandler">UpgradeHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;(<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type actix_web::dev::Service::Response">Response</a>, &lt;<a class="struct" href="../../actix_http/h1/upgrade/struct.UpgradeHandler.html" title="struct actix_http::h1::upgrade::UpgradeHandler">UpgradeHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;(<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;&gt;&gt;</h4></section><section id="method.poll_ready-19" class="method trait-impl"><a class="src rightside" href="../../src/actix_http/h1/upgrade.rs.html#27">source</a><a href="#method.poll_ready-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_ready" class="fn">poll_ready</a>(
&amp;self,
_: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a>&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="struct" href="../../actix_http/h1/upgrade/struct.UpgradeHandler.html" title="struct actix_http::h1::upgrade::UpgradeHandler">UpgradeHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;(<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type actix_web::dev::Service::Error">Error</a>&gt;&gt;</h4></section><section id="method.call-19" class="method trait-impl"><a class="src rightside" href="../../src/actix_http/h1/upgrade.rs.html#29">source</a><a href="#method.call-19" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(
&amp;self,
_: (<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)
) -&gt; &lt;<a class="struct" href="../../actix_http/h1/upgrade/struct.UpgradeHandler.html" title="struct actix_http::h1::upgrade::UpgradeHandler">UpgradeHandler</a> as <a class="trait" href="trait.Service.html" title="trait actix_web::dev::Service">Service</a>&lt;(<a class="struct" href="../../actix_http/requests/request/struct.Request.html" title="struct actix_http::requests::request::Request">Request</a>, Framed&lt;T, <a class="struct" href="../../actix_http/h1/codec/struct.Codec.html" title="struct actix_http::h1::codec::Codec">Codec</a>&gt;)&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type actix_web::dev::Service::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"></div><script src="../../trait.impl/actix_service/trait.Service.js" data-ignore-extern-crates="alloc,core,actix_http,actix_tls" async></script></section></div></main></body></html>