juniper/iron/status/enum.StatusClass.html
Juniper Documentation Builder 95d942c9d4 Update documentation for Juniper
2016-09-11 18:41:24 +00:00

223 lines
No EOL
16 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="API documentation for the Rust `StatusClass` enum in crate `iron`.">
<meta name="keywords" content="rust, rustlang, rust-lang, StatusClass">
<title>iron::status::StatusClass - Rust</title>
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
<link rel="shortcut icon" href="https://avatars0.githubusercontent.com/u/7853871?s=256">
</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">
<a href='../../iron/index.html'><img src='https://avatars0.githubusercontent.com/u/7853871?s=128' alt='logo' width='100'></a>
<p class='location'><a href='../index.html'>iron</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'>iron</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-7980' class='srclink' href='../../hyper/status/enum.StatusClass.html?gotosrc=7980' 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 codes meaning is unknown, also,
to get the appropriate <em>category</em> of status.</p>
</div><h2 class='variants'>Variants</h2>
<span id='variant.Informational' class='variant'><code>Informational</code></span><div class='docblock'><p>1xx (Informational): The request was received, continuing process</p>
</div><span id='variant.Success' class='variant'><code>Success</code></span><div class='docblock'><p>2xx (Success): The request was successfully received, understood, and accepted</p>
</div><span id='variant.Redirection' class='variant'><code>Redirection</code></span><div class='docblock'><p>3xx (Redirection): Further action needs to be taken in order to complete the request</p>
</div><span id='variant.ClientError' class='variant'><code>ClientError</code></span><div class='docblock'><p>4xx (Client Error): The request contains bad syntax or cannot be fulfilled</p>
</div><span id='variant.ServerError' class='variant'><code>ServerError</code></span><div class='docblock'><p>5xx (Server Error): The server failed to fulfill an apparently valid request</p>
</div><span id='variant.NoClass' class='variant'><code>NoClass</code></span><div class='docblock'><p>A status code lower than 100 or higher than 599. These codes do no belong to any class.</p>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><span class='in-band'><code>impl <a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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='../../iron/status/enum.Status.html' title='iron::status::Status'>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! Dont know what to do with it.</span>
<span class='comment'>// Lets 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 lets 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 class='impl'><span class='in-band'><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='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'></div><h3 class='impl'><span class='in-band'><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='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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#tymethod.cmp' class='fnname'>cmp</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::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'><span class='in-band'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html' title='core::cmp::PartialOrd'>PartialOrd</a>&lt;<a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a>&gt; for <a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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#tymethod.partial_cmp' class='fnname'>partial_cmp</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::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>
</div><h3 class='impl'><span class='in-band'><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='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'></div><h3 class='impl'><span class='in-band'><code>impl <a class='trait' href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html' title='core::cmp::PartialEq'>PartialEq</a>&lt;<a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a>&gt; for <a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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#tymethod.eq' class='fnname'>eq</a>(&amp;self, __arg_0: &amp;<a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<div class='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div><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, other: &amp;Rhs) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></h4>
<div class='docblock'><p>This method tests for <code>!=</code>.</p>
</div></div><h3 class='impl'><span class='in-band'><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='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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#tymethod.clone' class='fnname'>clone</a>(&amp;self) -&gt; <a class='enum' href='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></h4>
<div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div><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><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></h4>
<div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><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='../../iron/status/enum.StatusClass.html' title='iron::status::StatusClass'>StatusClass</a></code></span><span class='out-of-band'></span></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#tymethod.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='enum' href='https://doc.rust-lang.org/nightly/core/result/enum.Result.html' title='core::result::Result'>Result</a>&lt;<a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.tuple.html'>()</a>,&nbsp;<a class='struct' href='https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html' title='core::fmt::Error'>Error</a>&gt;</code></h4>
<div class='docblock'><p>Formats the value using the given formatter.</p>
</div></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>
<dt>+</dt>
<dd>Collapse/expand all sections</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> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "iron";
window.playgroundUrl = "";
</script>
<script src="../../jquery.js"></script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>