pencil 0.1.2

A micro web framework for Rust.
<!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="API documentation for the Rust `StatusClass` enum in crate `hyper`.">
    <meta name="keywords" content="rust, rustlang, rust-lang, StatusClass">

    <title>hyper::status::StatusClass - Rust</title>

    <link rel="stylesheet" type="text/css" href="../../rustdoc.css">
    <link rel="stylesheet" type="text/css" href="../../main.css">

    
    
</head>
<body class="rustdoc">
    <!--[if lte IE 8]>
    <div class="warning">
        This old browser is unsupported and will most likely display funky
        things.
    </div>
    <![endif]-->

    

    <nav class="sidebar">
        
        <p class='location'><a href='../index.html'>hyper</a>::<wbr><a href='index.html'>status</a></p><script>window.sidebarCurrent = {name: 'StatusClass', ty: 'enum', relpath: ''};</script><script defer src="sidebar-items.js"></script>
    </nav>

    <nav class="sub">
        <form class="search-form js-only">
            <div class="search-container">
                <input class="search-input" name="search"
                       autocomplete="off"
                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
                       type="search">
            </div>
        </form>
    </nav>

    <section id='main' class="content enum">
<h1 class='fqn'><span class='in-band'>Enum <a href='../index.html'>hyper</a>::<wbr><a href='index.html'>status</a>::<wbr><a class='enum' href=''>StatusClass</a></span><span class='out-of-band'><span id='render-detail'>
            <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
                [<span class='inner'>&#x2212;</span>]
            </a>
        </span><a id='src-7471' class='srclink' href='../../src/hyper/status.rs.html#576-594' title='goto source code'>[src]</a></span></h1>
<pre class='rust enum'>pub enum StatusClass {
    Informational,
    Success,
    Redirection,
    ClientError,
    ServerError,
    NoClass,
}</pre><div class='docblock'><p>The class of an HTTP <code>status-code</code>.</p>

<p><a href="https://tools.ietf.org/html/rfc7231#section-6">RFC 7231, section 6 (Response Status Codes)</a>:</p>

<blockquote>
<p>The first digit of the status-code defines the class of response.
The last two digits do not have any categorization role.</p>
</blockquote>

<p>And:</p>

<blockquote>
<p>HTTP status codes are extensible.  HTTP clients are not required to
understand the meaning of all registered status codes, though such
understanding is obviously desirable.  However, a client MUST
understand the class of any status code, as indicated by the first
digit, and treat an unrecognized status code as being equivalent to
the x00 status code of that class, with the exception that a
recipient MUST NOT cache a response with an unrecognized status code.</p>

<p>For example, if an unrecognized status code of 471 is received by a
client, the client can assume that there was something wrong with its
request and treat the response as if it had received a 400 (Bad
Request) status code.  The response message will usually contain a
representation that explains the status.</p>
</blockquote>

<p>This can be used in cases where a status code’s meaning is unknown, also,
to get the appropriate <em>category</em> of status.</p>
</div><h2 class='variants'>Variants</h2>
<table><tr><td id='variant.Informational'><code>Informational</code></td><td><div class='docblock'><p>1xx (Informational): The request was received, continuing process</p>
</div></td></tr><tr><td id='variant.Success'><code>Success</code></td><td><div class='docblock'><p>2xx (Success): The request was successfully received, understood, and accepted</p>
</div></td></tr><tr><td id='variant.Redirection'><code>Redirection</code></td><td><div class='docblock'><p>3xx (Redirection): Further action needs to be taken in order to complete the request</p>
</div></td></tr><tr><td id='variant.ClientError'><code>ClientError</code></td><td><div class='docblock'><p>4xx (Client Error): The request contains bad syntax or cannot be fulfilled</p>
</div></td></tr><tr><td id='variant.ServerError'><code>ServerError</code></td><td><div class='docblock'><p>5xx (Server Error): The server failed to fulfill an apparently valid request</p>
</div></td></tr><tr><td id='variant.NoClass'><code>NoClass</code></td><td><div class='docblock'><p>A status code lower than 100 or higher than 599. These codes do no belong to any class.</p>
</div></td></tr></table><h2 id='methods'>Methods</h2><h3 class='impl'><code>impl <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.default_code' class='method'><code>fn <a href='#method.default_code' class='fnname'>default_code</a>(&amp;self) -&gt; <a class='enum' href='../../hyper/status/enum.StatusCode.html' title='hyper::status::StatusCode'>StatusCode</a></code></h4>
<div class='docblock'><p>Get the default status code for the class.</p>

<p>This produces the x00 status code; thus, for <code>ClientError</code> (4xx), for
example, this will produce <code>BadRequest</code> (400):</p>
<pre class='rust rust-example-rendered'>
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>ClientError</span>.<span class='ident'>default_code</span>(), <span class='ident'>BadRequest</span>);</pre>

<p>The use for this is outlined in <a href="https://tools.ietf.org/html/rfc7231#section-6">RFC 7231, section 6 (Response Status
Codes)</a>:</p>

<blockquote>
<p>HTTP status codes are extensible.  HTTP clients are not required to
understand the meaning of all registered status codes, though such
understanding is obviously desirable.  However, a client MUST
understand the class of any status code, as indicated by the first
digit, and treat an unrecognized status code as being equivalent to
the x00 status code of that class, with the exception that a
recipient MUST NOT cache a response with an unrecognized status code.</p>

<p>For example, if an unrecognized status code of 471 is received by a
client, the client can assume that there was something wrong with its
request and treat the response as if it had received a 400 (Bad
Request) status code.  The response message will usually contain a
representation that explains the status.</p>
</blockquote>

<p>This is demonstrated thusly:</p>
<pre class='rust rust-example-rendered'>
<span class='comment'>// Suppose we have received this status code.</span>
<span class='comment'>// You will never directly create an unregistered status code.</span>
<span class='kw'>let</span> <span class='ident'>status</span> <span class='op'>=</span> <span class='ident'>Unregistered</span>(<span class='number'>471</span>);

<span class='comment'>// Uh oh! Don’t know what to do with it.</span>
<span class='comment'>// Let’s fall back to the default:</span>
<span class='kw'>let</span> <span class='ident'>status</span> <span class='op'>=</span> <span class='ident'>status</span>.<span class='ident'>class</span>().<span class='ident'>default_code</span>();

<span class='comment'>// And look! That is 400 Bad Request.</span>
<span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>status</span>, <span class='ident'>BadRequest</span>);
<span class='comment'>// So now let’s treat it as that.</span></pre>

<p>All status codes that do not map to an existing status class are matched
by a <code>NoClass</code>, variant that resolves to 200 (Ok) as default code.
This is a common handling for unknown status codes in major browsers.</p>
</div></div><h2 id='implementations'>Trait Implementations</h2><h3 id='derived_implementations'>Derived Implementations </h3><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html' title='core::marker::Copy'>Copy</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'></div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html' title='core::cmp::Ord'>Ord</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.cmp' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html#method.cmp' class='fnname'>cmp</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='enum' href='https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html' title='core::cmp::Ordering'>Ordering</a></code></h4>
</div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html' title='core::cmp::PartialOrd'>PartialOrd</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.partial_cmp' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.partial_cmp' class='fnname'>partial_cmp</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='enum' href='https://doc.rust-lang.org/nightly/core/cmp/enum.Ordering.html' title='core::cmp::Ordering'>Ordering</a>&gt;</code></h4>
<h4 id='method.lt' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.lt' class='fnname'>lt</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<h4 id='method.le' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.le' class='fnname'>le</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<h4 id='method.gt' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.gt' class='fnname'>gt</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<h4 id='method.ge' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html#method.ge' class='fnname'>ge</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
</div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html' title='core::cmp::Eq'>Eq</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'></div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html' title='core::cmp::PartialEq'>PartialEq</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.eq' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.eq' class='fnname'>eq</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<h4 id='method.ne' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne' class='fnname'>ne</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
</div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html' title='core::clone::Clone'>Clone</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.clone' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone' class='fnname'>clone</a>(&amp;self) -&gt; <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h4>
<h4 id='method.clone_from' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&amp;mut self, source: &amp;Self)</code></h4>
</div><h3 class='impl'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html' title='core::fmt::Debug'>Debug</a> for <a class='enum' href='../../hyper/status/enum.StatusClass.html' title='hyper::status::StatusClass'>StatusClass</a></code></h3><div class='impl-items'><h4 id='method.fmt' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#method.fmt' class='fnname'>fmt</a>(&amp;self, __arg_0: &amp;mut <a class='struct' href='https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html' title='core::fmt::Formatter'>Formatter</a>) -&gt; <a class='type' href='https://doc.rust-lang.org/nightly/core/fmt/type.Result.html' title='core::fmt::Result'>Result</a></code></h4>
</div></section>
    <section id='search' class="content hidden"></section>

    <section class="footer"></section>

    <aside id="help" class="hidden">
        <div>
            <h1 class="hidden">Help</h1>

            <div class="shortcuts">
                <h2>Keyboard Shortcuts</h2>

                <dl>
                    <dt>?</dt>
                    <dd>Show this help dialog</dd>
                    <dt>S</dt>
                    <dd>Focus the search field</dd>
                    <dt>&larrb;</dt>
                    <dd>Move up in search results</dd>
                    <dt>&rarrb;</dt>
                    <dd>Move down in search results</dd>
                    <dt>&#9166;</dt>
                    <dd>Go to active search result</dd>
                </dl>
            </div>

            <div class="infos">
                <h2>Search Tricks</h2>

                <p>
                    Prefix searches with a type followed by a colon (e.g.
                    <code>fn:</code>) to restrict the search to a given type.
                </p>

                <p>
                    Accepted types are: <code>fn</code>, <code>mod</code>,
                    <code>struct</code>, <code>enum</code>,
                    <code>trait</code>, <code>type</code>, <code>macro</code>,
                    and <code>const</code>.
                </p>

                <p>
                    Search functions by type signature (e.g.
                    <code>vec -> usize</code>)
                </p>
            </div>
        </div>
    </aside>

    

    <script>
        window.rootPath = "../../";
        window.currentCrate = "hyper";
        window.playgroundUrl = "";
    </script>
    <script src="../../jquery.js"></script>
    <script src="../../main.js"></script>
    
    <script defer src="../../search-index.js"></script>
</body>
</html>