juniper/hyper/struct.LanguageTag.html
Juniper Documentation Builder 95d942c9d4 Update documentation for Juniper
2016-09-11 18:41:24 +00:00

230 lines
No EOL
24 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 `LanguageTag` struct in crate `hyper`.">
<meta name="keywords" content="rust, rustlang, rust-lang, LanguageTag">
<title>hyper::LanguageTag - 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></p><script>window.sidebarCurrent = {name: 'LanguageTag', ty: 'struct', 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 struct">
<h1 class='fqn'><span class='in-band'>Struct <a href='index.html'>hyper</a>::<wbr><a class='struct' href=''>LanguageTag</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-101' class='srclink' href='../language_tags/struct.LanguageTag.html?gotosrc=101' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct LanguageTag {
pub language: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
pub extlangs: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
pub script: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
pub region: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
pub variants: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
pub extensions: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/btree/map/struct.BTreeMap.html' title='collections::btree::map::BTreeMap'>BTreeMap</a>&lt;<a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.u8.html'>u8</a>,&nbsp;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;&gt;,
pub privateuse: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;,
}</pre><div class='docblock'><p>A language tag as described in <a href="http://tools.ietf.org/html/bcp47">BCP47</a>.</p>
<p>Language tags are used to help identify languages, whether spoken,
written, signed, or otherwise signaled, for the purpose of
communication. This includes constructed and artificial languages
but excludes languages not intended primarily for human
communication, such as programming languages.</p>
</div><h2 class='fields'>Fields</h2><span id='structfield.language' class='structfield'><code>language: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Language subtags are used to indicate the language, ignoring all
other aspects such as script, region or spefic invariants.</p>
</div><span id='structfield.extlangs' class='structfield'><code>extlangs: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Extended language subtags are used to identify certain specially
selected languages that, for various historical and compatibility
reasons, are closely identified with or tagged using an existing
primary language subtag.</p>
</div><span id='structfield.script' class='structfield'><code>script: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Script subtags are used to indicate the script or writing system
variations that distinguish the written forms of a language or its
dialects.</p>
</div><span id='structfield.region' class='structfield'><code>region: <a class='enum' href='https://doc.rust-lang.org/nightly/core/option/enum.Option.html' title='core::option::Option'>Option</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Region subtags are used to indicate linguistic variations associated
with or appropriate to a specific country, territory, or region.
Typically, a region subtag is used to indicate variations such as
regional dialects or usage, or region-specific spelling conventions.
It can also be used to indicate that content is expressed in a way
that is appropriate for use throughout a region, for instance,
Spanish content tailored to be useful throughout Latin America.</p>
</div><span id='structfield.variants' class='structfield'><code>variants: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Variant subtags are used to indicate additional, well-recognized
variations that define a language or its dialects that are not
covered by other available subtags.</p>
</div><span id='structfield.extensions' class='structfield'><code>extensions: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/btree/map/struct.BTreeMap.html' title='collections::btree::map::BTreeMap'>BTreeMap</a>&lt;<a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.u8.html'>u8</a>,&nbsp;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Extensions provide a mechanism for extending language tags for use in
various applications. They are intended to identify information that
is commonly used in association with languages or language tags but
that is not part of language identification.</p>
</div><span id='structfield.privateuse' class='structfield'><code>privateuse: <a class='struct' href='https://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html' title='collections::vec::Vec'>Vec</a>&lt;<a class='struct' href='https://doc.rust-lang.org/nightly/collections/string/struct.String.html' title='collections::string::String'>String</a>&gt;</code>
</span><span class='stab '></span><div class='docblock'><p>Private use subtags are used to indicate distinctions in language
that are important in a given context by private agreement.</p>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><span class='in-band'><code>impl <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'><h4 id='method.matches' class='method'><code>fn <a href='#method.matches' class='fnname'>matches</a>(&amp;self, other: &amp;<a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a>) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<div class='docblock'><p>Matches language tags. The first language acts as a language range, the second one is used
as a normal language tag. None fields in the language range are ignored. If the language
tag has more extlangs than the range these extlangs are ignored. Matches are
case-insensitive. <code>*</code> in language ranges are represented using <code>None</code> values. The language
range <code>*</code> that matches language tags is created by the default language tag:
<code>let wildcard: LanguageTag = Default::default();.</code></p>
<p>For example the range <code>en-GB</code> matches only <code>en-GB</code> and <code>en-Arab-GB</code> but not <code>en</code>.
The range <code>en</code> matches all language tags starting with <code>en</code> including <code>en</code>, <code>en-GB</code>,
<code>en-Arab</code> and <code>en-Arab-GB</code>.</p>
<h1 id='panics' class='section-header'><a href='#panics'>Panics</a></h1>
<p>If the language range has extensions or private use tags.</p>
<h1 id='examples' class='section-header'><a href='#examples'>Examples</a></h1>
<pre class='rust rust-example-rendered'>
<span class='kw'>let</span> <span class='ident'>range_italian</span> <span class='op'>=</span> <span class='macro'>langtag</span><span class='macro'>!</span>(<span class='ident'>it</span>);
<span class='kw'>let</span> <span class='ident'>tag_german</span> <span class='op'>=</span> <span class='macro'>langtag</span><span class='macro'>!</span>(<span class='ident'>de</span>);
<span class='kw'>let</span> <span class='ident'>tag_italian_switzerland</span> <span class='op'>=</span> <span class='macro'>langtag</span><span class='macro'>!</span>(<span class='ident'>it</span>;;;<span class='ident'>CH</span>);
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='op'>!</span><span class='ident'>range_italian</span>.<span class='ident'>matches</span>(<span class='kw-2'>&amp;</span><span class='ident'>tag_german</span>));
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='ident'>range_italian</span>.<span class='ident'>matches</span>(<span class='kw-2'>&amp;</span><span class='ident'>tag_italian_switzerland</span>));
<span class='kw'>let</span> <span class='ident'>range_spanish_brazil</span> <span class='op'>=</span> <span class='macro'>langtag</span><span class='macro'>!</span>(<span class='ident'>es</span>;;;<span class='ident'>BR</span>);
<span class='kw'>let</span> <span class='ident'>tag_spanish</span> <span class='op'>=</span> <span class='macro'>langtag</span><span class='macro'>!</span>(<span class='ident'>es</span>);
<span class='macro'>assert</span><span class='macro'>!</span>(<span class='op'>!</span><span class='ident'>range_spanish_brazil</span>.<span class='ident'>matches</span>(<span class='kw-2'>&amp;</span><span class='ident'>tag_spanish</span>));</pre>
</div><h4 id='method.is_language_range' class='method'><code>fn <a href='#method.is_language_range' class='fnname'>is_language_range</a>(&amp;self) -&gt; <a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.bool.html'>bool</a></code></h4>
<div class='docblock'><p>Checks if it is a language range, meaning that there are no extension and privateuse tags.</p>
</div><h4 id='method.canonicalize' class='method'><code>fn <a href='#method.canonicalize' class='fnname'>canonicalize</a>(&amp;self) -&gt; <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></h4>
<div class='docblock'><p>Returns the canonical version of the language tag.</p>
<p>It currently applies the following steps:</p>
<ul>
<li>Grandfathered tags are replaced with the canonical version if possible.</li>
<li>Extension languages are promoted to primary language.</li>
<li>Deprecated languages are replaced with modern equivalents.</li>
<li>Deprecated regions are replaced with new country names.</li>
<li>The <code>heploc</code> variant is replaced with <code>alalc97</code>.</li>
</ul>
<p>The returned language tags may not be completly canonical and they are
not validated.</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/clone/trait.Clone.html' title='core::clone::Clone'>Clone</a> for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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/cmp/trait.Eq.html' title='core::cmp::Eq'>Eq</a> for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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/default/trait.Default.html' title='core::default::Default'>Default</a> for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'><h4 id='method.default' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default' class='fnname'>default</a>() -&gt; <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></h4>
<div class='docblock'><p>Returns the &quot;default value&quot; for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">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='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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><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='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a>&gt; for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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, other: &amp;<a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</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/str/trait.FromStr.html' title='core::str::FromStr'>FromStr</a> for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'><h4 id='associatedtype.Err' class='type'><code>type <a href='https://doc.rust-lang.org/nightly/core/str/trait.FromStr.html#associatedtype.Err' class='type'>Err</a> = <a class='enum' href='../language_tags/enum.Error.html' title='language_tags::Error'>Error</a></code></h4>
<div class='docblock'><p>The associated error which can be returned from parsing.</p>
</div><h4 id='method.from_str' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/str/trait.FromStr.html#tymethod.from_str' class='fnname'>from_str</a>(s: &amp;<a class='primitive' href='https://doc.rust-lang.org/nightly/std/primitive.str.html'>str</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='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a>,&nbsp;<a class='enum' href='../language_tags/enum.Error.html' title='language_tags::Error'>Error</a>&gt;</code></h4>
<div class='docblock'><p>Parses a string <code>s</code> to return a value of this type. <a href="https://doc.rust-lang.org/nightly/core/str/trait.FromStr.html#tymethod.from_str">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.Display.html' title='core::fmt::Display'>Display</a> for <a class='struct' href='../hyper/struct.LanguageTag.html' title='hyper::LanguageTag'>LanguageTag</a></code></span><span class='out-of-band'></span></h3>
<div class='impl-items'><h4 id='method.fmt-1' class='method'><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, f: &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 = "hyper";
window.playgroundUrl = "";
</script>
<script src="../jquery.js"></script>
<script src="../main.js"></script>
<script defer src="../search-index.js"></script>
</body>
</html>