Files
GopherGate/target/doc/hyper/service/trait.Service.html
2026-02-26 12:00:21 -05:00

44 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 function from a `Request` to a `Response`."><title>Service in hyper::service - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="hyper" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></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]--><rustdoc-topbar><h2><a href="#">Service</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../hyper/index.html">hyper</a><span class="version">1.8.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Service</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#functional" title="Functional">Functional</a></li><li><a href="#utilities" title="Utilities">Utilities</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Error" title="Error">Error</a></li><li><a href="#associatedtype.Future" title="Future">Future</a></li><li><a href="#associatedtype.Response" title="Response">Response</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.call" title="call">call</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Service%3CRequest%3E-for-%26S" title="&#38;S">&#38;S</a></li><li><a href="#impl-Service%3CRequest%3E-for-%26mut+S" title="&#38;mut S">&#38;mut S</a></li><li><a href="#impl-Service%3CRequest%3E-for-Arc%3CS%3E" title="Arc&#60;S&#62;">Arc&#60;S&#62;</a></li><li><a href="#impl-Service%3CRequest%3E-for-Box%3CS%3E" title="Box&#60;S&#62;">Box&#60;S&#62;</a></li><li><a href="#impl-Service%3CRequest%3E-for-Rc%3CS%3E" title="Rc&#60;S&#62;">Rc&#60;S&#62;</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In hyper::<wbr>service</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">hyper</a>::<wbr><a href="index.html">service</a></div><h1>Trait <span class="trait">Service</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/hyper/service/service.rs.html#32-57">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Service&lt;Request&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/1.93.1/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/1.93.1/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 hyper::service::Service::Response">Response</a>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a>&gt;&gt;;
// Required method
fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::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 function from a <code>Request</code> to a <code>Response</code>.</p>
<p>The <code>Service</code> trait is a simplified interface making it easy to write
network applications in a modular and reusable way, decoupled from the
underlying protocol.</p>
<h2 id="functional"><a class="doc-anchor" href="#functional">§</a>Functional</h2>
<p>A <code>Service</code> is a function of a <code>Request</code>. It immediately returns a
<a href="https://doc.rust-lang.org/1.93.1/core/future/future/trait.Future.html" title="trait core::future::future::Future"><code>Future</code></a> representing the eventual completion of processing the
request. The actual request processing may happen at any time in the
future, on any thread or executor. The processing may depend on calling
other services. At some point in the future, the processing will complete,
and the <a href="https://doc.rust-lang.org/1.93.1/core/future/future/trait.Future.html" title="trait core::future::future::Future"><code>Future</code></a> will resolve to a response or an error.</p>
<p>At a high level, the <code>Service::call</code> function represents an RPC request. The
<code>Service</code> value can be a server or a client.</p>
<h2 id="utilities"><a class="doc-anchor" href="#utilities">§</a>Utilities</h2>
<p>The <a href="https://docs.rs/hyper-util"><code>hyper-util</code></a> crate provides facilities to bridge this trait to
other libraries, such as <a href="https://docs.rs/tower"><code>tower</code></a>, which might provide their
own <code>Service</code> variants.</p>
<p>See <a href="https://docs.rs/hyper-util/latest/hyper_util/service/index.html"><code>hyper_util::service</code></a> for more information.</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.Response" class="method"><a class="src rightside" href="../../src/hyper/service/service.rs.html#34">Source</a><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"><a class="src rightside" href="../../src/hyper/service/service.rs.html#42">Source</a><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.</p>
<p>Note: Returning an <code>Error</code> to a hyper server, the behavior depends on the
protocol. In most cases, hyper will cause the connection to be abruptly aborted.
It will abort the request however the protocol allows, either with some sort of RST_STREAM,
or killing the connection if that doesnt exist.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Future" class="method"><a class="src rightside" href="../../src/hyper/service/service.rs.html#45">Source</a><h4 class="code-header">type <a href="#associatedtype.Future" class="associatedtype">Future</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/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/1.93.1/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 hyper::service::Service::Response">Response</a>, Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::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.call" class="method"><a class="src rightside" href="../../src/hyper/service/service.rs.html#56">Source</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section></summary><div class="docblock"><p>Process the request and return the response asynchronously.
<code>call</code> takes <code>&amp;self</code> instead of <code>mut &amp;self</code> because:</p>
<ul>
<li>It prepares the way for async fn,
since then the future only borrows <code>&amp;self</code>, and thus a Service can concurrently handle
multiple outstanding requests at once.</li>
<li>Its clearer that Services can likely be cloned.</li>
<li>To share state across clones, you generally need <code>Arc&lt;Mutex&lt;_&gt;&gt;</code>
That means youre not really using the <code>&amp;mut self</code> and could do with a <code>&amp;self</code>.
The discussion on this is here: <a href="https://github.com/hyperium/hyper/issues/3040">https://github.com/hyperium/hyper/issues/3040</a></li>
</ul>
</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-%26S" class="impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#59-68">Source</a><a href="#impl-Service%3CRequest%3E-for-%26S" class="anchor">§</a><h3 class="code-header">impl&lt;Request, S: <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;S</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#60">Source</a><a href="#associatedtype.Response-1" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type hyper::service::Service::Response">Response</a></h4></section><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#61">Source</a><a href="#associatedtype.Error-1" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a></h4></section><section id="associatedtype.Future-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#62">Source</a><a href="#associatedtype.Future-1" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section><section id="method.call" class="method trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#65-67">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: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CRequest%3E-for-%26mut+S" class="impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#70-79">Source</a><a href="#impl-Service%3CRequest%3E-for-%26mut+S" class="anchor">§</a><h3 class="code-header">impl&lt;Request, S: <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut S</a></h3></section></summary><div class="impl-items"><section id="associatedtype.Response-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#71">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type hyper::service::Service::Response">Response</a></h4></section><section id="associatedtype.Error-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#72">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a></h4></section><section id="associatedtype.Future-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#73">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section><section id="method.call-1" class="method trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#76-78">Source</a><a href="#method.call-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CRequest%3E-for-Box%3CS%3E" class="impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#81-90">Source</a><a href="#impl-Service%3CRequest%3E-for-Box%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Request, S: <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; for <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;S&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Response-3" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#82">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type hyper::service::Service::Response">Response</a></h4></section><section id="associatedtype.Error-3" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#83">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a></h4></section><section id="associatedtype.Future-3" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#84">Source</a><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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section><section id="method.call-2" class="method trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#87-89">Source</a><a href="#method.call-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CRequest%3E-for-Rc%3CS%3E" class="impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#92-101">Source</a><a href="#impl-Service%3CRequest%3E-for-Rc%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Request, S: <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; for <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;S&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Response-4" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#93">Source</a><a href="#associatedtype.Response-4" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type hyper::service::Service::Response">Response</a></h4></section><section id="associatedtype.Error-4" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#94">Source</a><a href="#associatedtype.Error-4" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a></h4></section><section id="associatedtype.Future-4" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#95">Source</a><a href="#associatedtype.Future-4" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section><section id="method.call-3" class="method trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#98-100">Source</a><a href="#method.call-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Service%3CRequest%3E-for-Arc%3CS%3E" class="impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#103-112">Source</a><a href="#impl-Service%3CRequest%3E-for-Arc%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;Request, S: <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>&gt; <a class="trait" href="trait.Service.html" title="trait hyper::service::Service">Service</a>&lt;Request&gt; for <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;S&gt;</h3></section></summary><div class="impl-items"><section id="associatedtype.Response-5" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#104">Source</a><a href="#associatedtype.Response-5" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Response" title="type hyper::service::Service::Response">Response</a></h4></section><section id="associatedtype.Error-5" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#105">Source</a><a href="#associatedtype.Error-5" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Error" title="type hyper::service::Service::Error">Error</a></h4></section><section id="associatedtype.Future-5" class="associatedtype trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#106">Source</a><a href="#associatedtype.Future-5" 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 hyper::service::Service">Service</a>&lt;Request&gt;&gt;::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::Service::Future">Future</a></h4></section><section id="method.call-4" class="method trait-impl"><a class="src rightside" href="../../src/hyper/service/service.rs.html#109-111">Source</a><a href="#method.call-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.call" class="fn">call</a>(&amp;self, req: Request) -&gt; Self::<a class="associatedtype" href="trait.Service.html#associatedtype.Future" title="type hyper::service::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/hyper/service/service/trait.Service.js" data-ignore-extern-crates="alloc" async></script></section></div></main></body></html>