Files
GopherGate/target/doc/icu_locale_core/struct.LanguageIdentifier.html
2026-02-26 12:00:21 -05:00

253 lines
82 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="A core struct representing a `Unicode BCP47 Language Identifier`."><title>LanguageIdentifier in icu_locale_core - 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="icu_locale_core" 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 struct"><!--[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="#">LanguageIdentifier</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../icu_locale_core/index.html">icu_<wbr>locale_<wbr>core</a><span class="version">2.1.1</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Language<wbr>Identifier</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#ordering" title="Ordering">Ordering</a></li><li><a href="#parsing" title="Parsing">Parsing</a></li><li><a href="#serde" title="Serde">Serde</a></li><li><a href="#examples" title="Examples">Examples</a></li></ul><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.language" title="language">language</a></li><li><a href="#structfield.region" title="region">region</a></li><li><a href="#structfield.script" title="script">script</a></li><li><a href="#structfield.variants" title="variants">variants</a></li></ul><h3><a href="#implementations">Associated Constants</a></h3><ul class="block associatedconstant"><li><a href="#associatedconstant.UNKNOWN" title="UNKNOWN">UNKNOWN</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.is_unknown" title="is_unknown">is_unknown</a></li><li><a href="#method.normalizing_eq" title="normalizing_eq">normalizing_eq</a></li><li><a href="#method.strict_cmp" title="strict_cmp">strict_cmp</a></li><li><a href="#method.total_cmp" title="total_cmp">total_cmp</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-LanguageIdentifier" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-LanguageIdentifier" title="Debug">Debug</a></li><li><a href="#impl-Display-for-LanguageIdentifier" title="Display">Display</a></li><li><a href="#impl-Eq-for-LanguageIdentifier" title="Eq">Eq</a></li><li><a href="#impl-From%3C%26LanguageIdentifier%3E-for-(Language,+Option%3CScript%3E,+Option%3CRegion%3E)" title="From&#60;&#38;LanguageIdentifier&#62;">From&#60;&#38;LanguageIdentifier&#62;</a></li><li><a href="#impl-From%3C%26LanguageIdentifier%3E-for-DataLocale" title="From&#60;&#38;LanguageIdentifier&#62;">From&#60;&#38;LanguageIdentifier&#62;</a></li><li><a href="#impl-From%3C%26LanguageIdentifier%3E-for-LocalePreferences" title="From&#60;&#38;LanguageIdentifier&#62;">From&#60;&#38;LanguageIdentifier&#62;</a></li><li><a href="#impl-From%3C(Language,+Option%3CScript%3E,+Option%3CRegion%3E)%3E-for-LanguageIdentifier" title="From&#60;(Language, Option&#60;Script&#62;, Option&#60;Region&#62;)&#62;">From&#60;(Language, Option&#60;Script&#62;, Option&#60;Region&#62;)&#62;</a></li><li><a href="#impl-From%3CLanguage%3E-for-LanguageIdentifier" title="From&#60;Language&#62;">From&#60;Language&#62;</a></li><li><a href="#impl-From%3CLanguageIdentifier%3E-for-DataLocale" title="From&#60;LanguageIdentifier&#62;">From&#60;LanguageIdentifier&#62;</a></li><li><a href="#impl-From%3CLanguageIdentifier%3E-for-Locale" title="From&#60;LanguageIdentifier&#62;">From&#60;LanguageIdentifier&#62;</a></li><li><a href="#impl-From%3CLocale%3E-for-LanguageIdentifier" title="From&#60;Locale&#62;">From&#60;Locale&#62;</a></li><li><a href="#impl-From%3COption%3CRegion%3E%3E-for-LanguageIdentifier" title="From&#60;Option&#60;Region&#62;&#62;">From&#60;Option&#60;Region&#62;&#62;</a></li><li><a href="#impl-From%3COption%3CScript%3E%3E-for-LanguageIdentifier" title="From&#60;Option&#60;Script&#62;&#62;">From&#60;Option&#60;Script&#62;&#62;</a></li><li><a href="#impl-Hash-for-LanguageIdentifier" title="Hash">Hash</a></li><li><a href="#impl-PartialEq-for-LanguageIdentifier" title="PartialEq">PartialEq</a></li><li><a href="#impl-StructuralPartialEq-for-LanguageIdentifier" title="StructuralPartialEq">StructuralPartialEq</a></li><li><a href="#impl-Writeable-for-LanguageIdentifier" title="Writeable">Writeable</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-LanguageIdentifier" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-LanguageIdentifier" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-LanguageIdentifier" title="Send">Send</a></li><li><a href="#impl-Sync-for-LanguageIdentifier" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-LanguageIdentifier" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-LanguageIdentifier" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-ToString-for-T" title="ToString">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate icu_<wbr>locale_<wbr>core</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">icu_locale_core</a></div><h1>Struct <span class="struct">Language<wbr>Identifier</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/icu_locale_core/langid.rs.html#88-97">Source</a> </span></div><pre class="rust item-decl"><code>pub struct LanguageIdentifier {
pub language: <a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>,
pub script: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;,
pub region: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;,
pub variants: <a class="struct" href="subtags/struct.Variants.html" title="struct icu_locale_core::subtags::Variants">Variants</a>,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A core struct representing a <a href="https://unicode.org/reports/tr35/tr35.html#Unicode_language_identifier"><code>Unicode BCP47 Language Identifier</code></a>.</p>
<h2 id="ordering"><a class="doc-anchor" href="#ordering">§</a>Ordering</h2>
<p>This type deliberately does not implement <code>Ord</code> or <code>PartialOrd</code> because there are
multiple possible orderings. Depending on your use case, two orderings are available:</p>
<ol>
<li>A string ordering, suitable for stable serialization: <a href="struct.LanguageIdentifier.html#method.strict_cmp" title="method icu_locale_core::LanguageIdentifier::strict_cmp"><code>LanguageIdentifier::strict_cmp</code></a></li>
<li>A struct ordering, suitable for use with a BTreeSet: <a href="struct.LanguageIdentifier.html#method.total_cmp" title="method icu_locale_core::LanguageIdentifier::total_cmp"><code>LanguageIdentifier::total_cmp</code></a></li>
</ol>
<p>See issue: <a href="https://github.com/unicode-org/icu4x/issues/1215">https://github.com/unicode-org/icu4x/issues/1215</a></p>
<h2 id="parsing"><a class="doc-anchor" href="#parsing">§</a>Parsing</h2>
<p>Unicode recognizes three levels of standard conformance for any language identifier:</p>
<ul>
<li><em>well-formed</em> - syntactically correct</li>
<li><em>valid</em> - well-formed and only uses registered language, region, script and variant subtags…</li>
<li><em>canonical</em> - valid and no deprecated codes or structure.</li>
</ul>
<p>At the moment parsing normalizes a well-formed language identifier converting
<code>_</code> separators to <code>-</code> and adjusting casing to conform to the Unicode standard.</p>
<p>Any syntactically invalid subtags will cause the parsing to fail with an error.</p>
<p>This operation normalizes syntax to be well-formed. No legacy subtag replacements is performed.
For validation and canonicalization, see <code>LocaleCanonicalizer</code>.</p>
<h2 id="serde"><a class="doc-anchor" href="#serde">§</a>Serde</h2>
<p>This type implements <code>serde::Serialize</code> and <code>serde::Deserialize</code> if the
<code>"serde"</code> Cargo feature is enabled on the crate.</p>
<p>The value will be serialized as a string and parsed when deserialized.
For tips on efficient storage and retrieval of locales, see <a href="zerovec/index.html" title="mod icu_locale_core::zerovec"><code>crate::zerovec</code></a>.</p>
<h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
<p>Simple example:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{
langid,
subtags::{language, region},
};
<span class="kw">let </span>li = <span class="macro">langid!</span>(<span class="string">"en-US"</span>);
<span class="macro">assert_eq!</span>(li.language, <span class="macro">language!</span>(<span class="string">"en"</span>));
<span class="macro">assert_eq!</span>(li.script, <span class="prelude-val">None</span>);
<span class="macro">assert_eq!</span>(li.region, <span class="prelude-val">Some</span>(<span class="macro">region!</span>(<span class="string">"US"</span>)));
<span class="macro">assert_eq!</span>(li.variants.len(), <span class="number">0</span>);</code></pre></div>
<p>More complex example:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{
langid,
subtags::{language, region, script, variant},
};
<span class="kw">let </span>li = <span class="macro">langid!</span>(<span class="string">"eN-latn-Us-Valencia"</span>);
<span class="macro">assert_eq!</span>(li.language, <span class="macro">language!</span>(<span class="string">"en"</span>));
<span class="macro">assert_eq!</span>(li.script, <span class="prelude-val">Some</span>(<span class="macro">script!</span>(<span class="string">"Latn"</span>)));
<span class="macro">assert_eq!</span>(li.region, <span class="prelude-val">Some</span>(<span class="macro">region!</span>(<span class="string">"US"</span>)));
<span class="macro">assert_eq!</span>(li.variants.first(), <span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="macro">variant!</span>(<span class="string">"valencia"</span>)));</code></pre></div></div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.language" class="structfield section-header"><a href="#structfield.language" class="anchor field">§</a><code>language: <a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a></code></span><div class="docblock"><p>Language subtag of the language identifier.</p>
</div><span id="structfield.script" class="structfield section-header"><a href="#structfield.script" class="anchor field">§</a><code>script: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;</code></span><div class="docblock"><p>Script subtag of the language identifier.</p>
</div><span id="structfield.region" class="structfield section-header"><a href="#structfield.region" class="anchor field">§</a><code>region: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;</code></span><div class="docblock"><p>Region subtag of the language identifier.</p>
</div><span id="structfield.variants" class="structfield section-header"><a href="#structfield.variants" class="anchor field">§</a><code>variants: <a class="struct" href="subtags/struct.Variants.html" title="struct icu_locale_core::subtags::Variants">Variants</a></code></span><div class="docblock"><p>Variant subtags of the language identifier.</p>
</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#99-508">Source</a><a href="#impl-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.UNKNOWN" class="associatedconstant"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#101">Source</a><h4 class="code-header">pub const <a href="#associatedconstant.UNKNOWN" class="constant">UNKNOWN</a>: Self</h4></section></summary><div class="docblock"><p>The unknown language identifier “und”.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_unknown" class="method"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#174-179">Source</a><h4 class="code-header">pub const fn <a href="#method.is_unknown" class="fn">is_unknown</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Whether this <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> equals <a href="struct.LanguageIdentifier.html#associatedconstant.UNKNOWN" title="associated constant icu_locale_core::LanguageIdentifier::UNKNOWN"><code>LanguageIdentifier::UNKNOWN</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.strict_cmp" class="method"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#276-278">Source</a><h4 class="code-header">pub fn <a href="#method.strict_cmp" class="fn">strict_cmp</a>(&amp;self, other: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class="docblock"><p>Compare this <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> with BCP-47 bytes.</p>
<p>The return value is equivalent to what would happen if you first converted this
<a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> to a BCP-47 string and then performed a byte comparison.</p>
<p>This function is case-sensitive and results in a <em>total order</em>, so it is appropriate for
binary search. The only argument producing <a href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html#variant.Equal" title="variant core::cmp::Ordering::Equal"><code>Ordering::Equal</code></a> is <code>self.to_string()</code>.</p>
<h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
<p>Sorting a list of langids with this method requires converting one of them to a string:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::LanguageIdentifier;
<span class="kw">use </span>std::cmp::Ordering;
<span class="kw">use </span>writeable::Writeable;
<span class="comment">// Random input order:
</span><span class="kw">let </span>bcp47_strings: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>str] = <span class="kw-2">&amp;</span>[
<span class="string">"ar-Latn"</span>,
<span class="string">"zh-Hant-TW"</span>,
<span class="string">"zh-TW"</span>,
<span class="string">"und-fonipa"</span>,
<span class="string">"zh-Hant"</span>,
<span class="string">"ar-SA"</span>,
];
<span class="kw">let </span><span class="kw-2">mut </span>langids = bcp47_strings
.iter()
.map(|s| s.parse().unwrap())
.collect::&lt;Vec&lt;LanguageIdentifier&gt;&gt;();
langids.sort_by(|a, b| {
<span class="kw">let </span>b = b.write_to_string();
a.strict_cmp(b.as_bytes())
});
<span class="kw">let </span>strict_cmp_strings = langids
.iter()
.map(|l| l.to_string())
.collect::&lt;Vec&lt;String&gt;&gt;();
<span class="comment">// Output ordering, sorted alphabetically
</span><span class="kw">let </span>expected_ordering: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>str] = <span class="kw-2">&amp;</span>[
<span class="string">"ar-Latn"</span>,
<span class="string">"ar-SA"</span>,
<span class="string">"und-fonipa"</span>,
<span class="string">"zh-Hant"</span>,
<span class="string">"zh-Hant-TW"</span>,
<span class="string">"zh-TW"</span>,
];
<span class="macro">assert_eq!</span>(expected_ordering, strict_cmp_strings);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.total_cmp" class="method"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#365-367">Source</a><h4 class="code-header">pub fn <a href="#method.total_cmp" class="fn">total_cmp</a>(&amp;self, other: &amp;Self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></h4></section></summary><div class="docblock"><p>Compare this <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> with another <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> field-by-field.
The result is a total ordering sufficient for use in a <a href="alloc::collections::BTreeSet"><code>BTreeSet</code></a>.</p>
<p>Unlike <a href="struct.LanguageIdentifier.html#method.strict_cmp" title="method icu_locale_core::LanguageIdentifier::strict_cmp"><code>LanguageIdentifier::strict_cmp</code></a>, the ordering may or may not be equivalent
to string ordering, and it may or may not be stable across ICU4X releases.</p>
<h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
<p>This method returns a nonsensical ordering derived from the fields of the struct:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::LanguageIdentifier;
<span class="kw">use </span>std::cmp::Ordering;
<span class="comment">// Input strings, sorted alphabetically
</span><span class="kw">let </span>bcp47_strings: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>str] = <span class="kw-2">&amp;</span>[
<span class="string">"ar-Latn"</span>,
<span class="string">"ar-SA"</span>,
<span class="string">"und-fonipa"</span>,
<span class="string">"zh-Hant"</span>,
<span class="string">"zh-Hant-TW"</span>,
<span class="string">"zh-TW"</span>,
];
<span class="macro">assert!</span>(bcp47_strings.windows(<span class="number">2</span>).all(|w| w[<span class="number">0</span>] &lt; w[<span class="number">1</span>]));
<span class="kw">let </span><span class="kw-2">mut </span>langids = bcp47_strings
.iter()
.map(|s| s.parse().unwrap())
.collect::&lt;Vec&lt;LanguageIdentifier&gt;&gt;();
langids.sort_by(LanguageIdentifier::total_cmp);
<span class="kw">let </span>total_cmp_strings = langids
.iter()
.map(|l| l.to_string())
.collect::&lt;Vec&lt;String&gt;&gt;();
<span class="comment">// Output ordering, sorted arbitrarily
</span><span class="kw">let </span>expected_ordering: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>str] = <span class="kw-2">&amp;</span>[
<span class="string">"ar-SA"</span>,
<span class="string">"ar-Latn"</span>,
<span class="string">"und-fonipa"</span>,
<span class="string">"zh-TW"</span>,
<span class="string">"zh-Hant"</span>,
<span class="string">"zh-Hant-TW"</span>,
];
<span class="macro">assert_eq!</span>(expected_ordering, total_cmp_strings);</code></pre></div>
<p>Use a wrapper to add a <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> to a <a href="alloc::collections::BTreeSet"><code>BTreeSet</code></a>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::LanguageIdentifier;
<span class="kw">use </span>std::cmp::Ordering;
<span class="kw">use </span>std::collections::BTreeSet;
<span class="attr">#[derive(PartialEq, Eq)]
</span><span class="kw">struct </span>LanguageIdentifierTotalOrd(LanguageIdentifier);
<span class="kw">impl </span>Ord <span class="kw">for </span>LanguageIdentifierTotalOrd {
<span class="kw">fn </span>cmp(<span class="kw-2">&amp;</span><span class="self">self</span>, other: <span class="kw-2">&amp;</span><span class="self">Self</span>) -&gt; Ordering {
<span class="self">self</span>.<span class="number">0</span>.total_cmp(<span class="kw-2">&amp;</span>other.<span class="number">0</span>)
}
}
<span class="kw">impl </span>PartialOrd <span class="kw">for </span>LanguageIdentifierTotalOrd {
<span class="kw">fn </span>partial_cmp(<span class="kw-2">&amp;</span><span class="self">self</span>, other: <span class="kw-2">&amp;</span><span class="self">Self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;Ordering&gt; {
<span class="prelude-val">Some</span>(<span class="self">self</span>.cmp(other))
}
}
<span class="kw">let _</span>: BTreeSet&lt;LanguageIdentifierTotalOrd&gt; = <span class="macro">unimplemented!</span>();</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.normalizing_eq" class="method"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#392-422">Source</a><h4 class="code-header">pub fn <a href="#method.normalizing_eq" class="fn">normalizing_eq</a>(&amp;self, other: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Compare this <code>LanguageIdentifier</code> with a potentially unnormalized BCP-47 string.</p>
<p>The return value is equivalent to what would happen if you first parsed the
BCP-47 string to a <code>LanguageIdentifier</code> and then performed a structural comparison.</p>
<h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::LanguageIdentifier;
<span class="kw">let </span>bcp47_strings: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span>str] = <span class="kw-2">&amp;</span>[
<span class="string">"pl-LaTn-pL"</span>,
<span class="string">"uNd"</span>,
<span class="string">"UnD-adlm"</span>,
<span class="string">"uNd-GB"</span>,
<span class="string">"UND-FONIPA"</span>,
<span class="string">"ZH"</span>,
];
<span class="kw">for </span>a <span class="kw">in </span>bcp47_strings {
<span class="macro">assert!</span>(a.parse::&lt;LanguageIdentifier&gt;().unwrap().normalizing_eq(a));
}</code></pre></div></div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#impl-Clone-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#245-247">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#510-514">Source</a><a href="#impl-Debug-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#511-513">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.93.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#impl-Display-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3><div class="docblock"><p>This trait is implemented for compatibility with <a href="alloc::fmt"><code>fmt!</code></a>.
To create a string, [<code>Writeable::write_to_string</code>] is usually more efficient.</p>
</div></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.93.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%26LanguageIdentifier%3E-for-(Language,+Option%3CScript%3E,+Option%3CRegion%3E)" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#671-681">Source</a><a href="#impl-From%3C%26LanguageIdentifier%3E-for-(Language,+Option%3CScript%3E,+Option%3CRegion%3E)" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>&gt; for (<a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;)</h3><div class="docblock"><p>Convert from a <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a> to an LSR tuple.</p>
</div></section></summary><div class="docblock"><h4 id="examples-8"><a class="doc-anchor" href="#examples-8">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{
langid,
subtags::{language, region, script},
};
<span class="kw">let </span>lid = <span class="macro">langid!</span>(<span class="string">"en-Latn-US"</span>);
<span class="kw">let </span>(lang, script, region) = (<span class="kw-2">&amp;</span>lid).into();
<span class="macro">assert_eq!</span>(lang, <span class="macro">language!</span>(<span class="string">"en"</span>));
<span class="macro">assert_eq!</span>(script, <span class="prelude-val">Some</span>(<span class="macro">script!</span>(<span class="string">"Latn"</span>)));
<span class="macro">assert_eq!</span>(region, <span class="prelude-val">Some</span>(<span class="macro">region!</span>(<span class="string">"US"</span>)));</code></pre></div></div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#678-680">Source</a><a href="#method.from-6" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(langid: &amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%26LanguageIdentifier%3E-for-DataLocale" class="impl"><a class="src rightside" href="../src/icu_locale_core/data.rs.html#118-128">Source</a><a href="#impl-From%3C%26LanguageIdentifier%3E-for-DataLocale" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>&gt; for <a class="struct" href="struct.DataLocale.html" title="struct icu_locale_core::DataLocale">DataLocale</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/data.rs.html#119-127">Source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(langid: &amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C%26LanguageIdentifier%3E-for-LocalePreferences" class="impl"><a class="src rightside" href="../src/icu_locale_core/preferences/locale.rs.html#89-100">Source</a><a href="#impl-From%3C%26LanguageIdentifier%3E-for-LocalePreferences" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;&amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>&gt; for <a class="struct" href="preferences/struct.LocalePreferences.html" title="struct icu_locale_core::preferences::LocalePreferences">LocalePreferences</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-9" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/preferences/locale.rs.html#90-99">Source</a><a href="#method.from-9" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(lid: &amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3C(Language,+Option%3CScript%3E,+Option%3CRegion%3E)%3E-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#631-652">Source</a><a href="#impl-From%3C(Language,+Option%3CScript%3E,+Option%3CRegion%3E)%3E-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;(<a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;)&gt; for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3><div class="docblock"><p>Convert from an LSR tuple to a <a href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier"><code>LanguageIdentifier</code></a>.</p>
</div></section></summary><div class="docblock"><h4 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{
langid,
subtags::{language, region, script},
LanguageIdentifier,
};
<span class="kw">let </span>lang = <span class="macro">language!</span>(<span class="string">"en"</span>);
<span class="kw">let </span>script = <span class="macro">script!</span>(<span class="string">"Latn"</span>);
<span class="kw">let </span>region = <span class="macro">region!</span>(<span class="string">"US"</span>);
<span class="macro">assert_eq!</span>(
LanguageIdentifier::from((lang, <span class="prelude-val">Some</span>(script), <span class="prelude-val">Some</span>(region))),
<span class="macro">langid!</span>(<span class="string">"en-Latn-US"</span>)
);</code></pre></div></div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#638-651">Source</a><a href="#method.from-5" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(lsr: (<a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;)) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CLanguage%3E-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#559-568">Source</a><a href="#impl-From%3CLanguage%3E-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>&gt; for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3><div class="docblock"><h4 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{langid, subtags::language, LanguageIdentifier};
<span class="macro">assert_eq!</span>(LanguageIdentifier::from(<span class="macro">language!</span>(<span class="string">"en"</span>)), <span class="macro">langid!</span>(<span class="string">"en"</span>));</code></pre></div></div></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#560-567">Source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(language: <a class="struct" href="subtags/struct.Language.html" title="struct icu_locale_core::subtags::Language">Language</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CLanguageIdentifier%3E-for-DataLocale" class="impl"><a class="src rightside" href="../src/icu_locale_core/data.rs.html#106-110">Source</a><a href="#impl-From%3CLanguageIdentifier%3E-for-DataLocale" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>&gt; for <a class="struct" href="struct.DataLocale.html" title="struct icu_locale_core::DataLocale">DataLocale</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/data.rs.html#107-109">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(langid: <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CLanguageIdentifier%3E-for-Locale" class="impl"><a class="src rightside" href="../src/icu_locale_core/locale.rs.html#485-492">Source</a><a href="#impl-From%3CLanguageIdentifier%3E-for-Locale" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>&gt; for <a class="struct" href="struct.Locale.html" title="struct icu_locale_core::Locale">Locale</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/locale.rs.html#486-491">Source</a><a href="#method.from-7" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(id: <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CLocale%3E-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/locale.rs.html#494-498">Source</a><a href="#impl-From%3CLocale%3E-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.Locale.html" title="struct icu_locale_core::Locale">Locale</a>&gt; for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/locale.rs.html#495-497">Source</a><a href="#method.from-8" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(loc: <a class="struct" href="struct.Locale.html" title="struct icu_locale_core::Locale">Locale</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3COption%3CRegion%3E%3E-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#601-610">Source</a><a href="#impl-From%3COption%3CRegion%3E%3E-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;&gt; for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3><div class="docblock"><h4 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{langid, subtags::region, LanguageIdentifier};
<span class="macro">assert_eq!</span>(
LanguageIdentifier::from(<span class="prelude-val">Some</span>(<span class="macro">region!</span>(<span class="string">"US"</span>))),
<span class="macro">langid!</span>(<span class="string">"und-US"</span>)
);</code></pre></div></div></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#602-609">Source</a><a href="#method.from-4" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(region: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Region.html" title="struct icu_locale_core::subtags::Region">Region</a>&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3COption%3CScript%3E%3E-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#580-589">Source</a><a href="#impl-From%3COption%3CScript%3E%3E-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;&gt; for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3><div class="docblock"><h4 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h4>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>icu::locale::{langid, subtags::script, LanguageIdentifier};
<span class="macro">assert_eq!</span>(
LanguageIdentifier::from(<span class="prelude-val">Some</span>(<span class="macro">script!</span>(<span class="string">"latn"</span>))),
<span class="macro">langid!</span>(<span class="string">"und-Latn"</span>)
);</code></pre></div></div></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#581-588">Source</a><a href="#method.from-3" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(script: <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="subtags/struct.Script.html" title="struct icu_locale_core::subtags::Script">Script</a>&gt;) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Hash-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#impl-Hash-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a>&lt;__H: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut __H</a>)</h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/hash/mod.rs.html#235-237">Source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a>&lt;H&gt;(data: &amp;[Self], state: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut H</a>)<div class="where">where
H: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.93.1/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#impl-PartialEq-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.93.1/src/core/cmp.rs.html#264">Source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Tests for <code>!=</code>. The default implementation is almost always sufficient,
and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Writeable-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#impl-Writeable-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../writeable/trait.Writeable.html" title="trait writeable::Writeable">Writeable</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.write_to" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#method.write_to" class="anchor">§</a><h4 class="code-header">fn <a href="../writeable/trait.Writeable.html#method.write_to" class="fn">write_to</a>&lt;W: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Write.html" title="trait core::fmt::Write">Write</a> + ?<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;(&amp;self, sink: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut W</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/1.93.1/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Writes a string to the given sink. Errors from the sink are bubbled up.
The default implementation delegates to <code>write_to_parts</code>, and discards any
<code>Part</code> annotations.</div></details><details class="toggle method-toggle" open><summary><section id="method.writeable_length_hint" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#method.writeable_length_hint" class="anchor">§</a><h4 class="code-header">fn <a href="../writeable/trait.Writeable.html#method.writeable_length_hint" class="fn">writeable_length_hint</a>(&amp;self) -&gt; <a class="struct" href="../writeable/struct.LengthHint.html" title="struct writeable::LengthHint">LengthHint</a></h4></section></summary><div class='docblock'>Returns a hint for the number of UTF-8 bytes that will be written to the sink. <a href="../writeable/trait.Writeable.html#method.writeable_length_hint">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.writeable_borrow" class="method trait-impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#527">Source</a><a href="#method.writeable_borrow" class="anchor">§</a><h4 class="code-header">fn <a href="../writeable/trait.Writeable.html#method.writeable_borrow" class="fn">writeable_borrow</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a>&gt;</h4></section></summary><div class='docblock'>Returns a <code>&amp;str</code> that matches the output of <code>write_to</code>, if possible. <a href="../writeable/trait.Writeable.html#method.writeable_borrow">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.write_to_parts" class="method trait-impl"><a class="src rightside" href="../src/writeable/lib.rs.html#275">Source</a><a href="#method.write_to_parts" class="anchor">§</a><h4 class="code-header">fn <a href="../writeable/trait.Writeable.html#method.write_to_parts" class="fn">write_to_parts</a>&lt;S&gt;(&amp;self, sink: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut S</a>) -&gt; <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;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;<div class="where">where
S: <a class="trait" href="../writeable/trait.PartsWrite.html" title="trait writeable::PartsWrite">PartsWrite</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Write bytes and <code>Part</code> annotations to the given sink. Errors from the
sink are bubbled up. The default implementation delegates to <code>write_to</code>,
and doesnt produce any <code>Part</code> annotations.</div></details></div></details><section id="impl-Eq-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#impl-Eq-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-StructuralPartialEq-for-LanguageIdentifier" class="impl"><a class="src rightside" href="../src/icu_locale_core/langid.rs.html#86">Source</a><a href="#impl-StructuralPartialEq-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-LanguageIdentifier" class="impl"><a href="#impl-Freeze-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-RefUnwindSafe-for-LanguageIdentifier" class="impl"><a href="#impl-RefUnwindSafe-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-Send-for-LanguageIdentifier" class="impl"><a href="#impl-Send-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-Sync-for-LanguageIdentifier" class="impl"><a href="#impl-Sync-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-Unpin-for-LanguageIdentifier" class="impl"><a href="#impl-Unpin-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section><section id="impl-UnwindSafe-for-LanguageIdentifier" class="impl"><a href="#impl-UnwindSafe-for-LanguageIdentifier" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.LanguageIdentifier.html" title="struct icu_locale_core::LanguageIdentifier">LanguageIdentifier</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#547">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/clone.rs.html#549">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dest: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dest</code>. <a href="https://doc.rust-lang.org/1.93.1/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-10" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#788">Source</a><a href="#method.from-10" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#777">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/borrow.rs.html#85-87">Source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/borrow.rs.html#89">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/borrow.rs.html#90">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/borrow.rs.html#94">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.93.1/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToString-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/string.rs.html#2864">Source</a><a href="#impl-ToString-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/alloc/string.rs.html#2866">Source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/1.93.1/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#831">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#834">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <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;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#815">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#818">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <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;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>