edlang/unicode_normalization/trait.UnicodeNormalization.html

31 lines
35 KiB
HTML
Raw Normal View History

<!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="Methods for iterating over strings while applying Unicode normalizations as described in Unicode Standard Annex #15."><title>UnicodeNormalization in unicode_normalization - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-dd39b87e5fcfba68.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="unicode_normalization" data-themes="" data-resource-suffix="" data-rustdoc-version="1.80.0 (051478957 2024-07-21)" data-channel="1.80.0" data-search-js="search-d52510db62a78183.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-20a3ad099b048cf2.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-df360f571f6edeae.css"></noscript><link rel="icon" href="https://unicode-rs.github.io/unicode-rs_sm.png"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../unicode_normalization/index.html"><img src="https://unicode-rs.github.io/unicode-rs_sm.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../unicode_normalization/index.html"><img src="https://unicode-rs.github.io/unicode-rs_sm.png" alt="logo"></a><h2><a href="../unicode_normalization/index.html">unicode_normalization</a><span class="version">0.1.23</span></h2></div><h2 class="location"><a href="#">UnicodeNormalization</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.cjk_compat_variants">cjk_compat_variants</a></li><li><a href="#tymethod.nfc">nfc</a></li><li><a href="#tymethod.nfd">nfd</a></li><li><a href="#tymethod.nfkc">nfkc</a></li><li><a href="#tymethod.nfkd">nfkd</a></li><li><a href="#tymethod.stream_safe">stream_safe</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-UnicodeNormalization%3CChars%3C'a%3E%3E-for-%26str">&amp;&#x27;a str</a></li><li><a href="#impl-UnicodeNormalization%3CIntoIter%3Cchar%3E%3E-for-char">char</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In crate unicode_normalization</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="index.html">unicode_normalization</a>::<wbr><a class="trait" href="#">UnicodeNormalization</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/unicode_normalization/lib.rs.html#106-138">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait UnicodeNormalization&lt;I: <a class="trait" href="https://doc.rust-lang.org/1.80.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&l
// Required methods
fn <a href="#tymethod.nfd" class="fn">nfd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;I&gt;"></a>;
<span class="item-spacer"></span> fn <a href="#tymethod.nfkd" class="fn">nfkd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;I&gt;"></a>;
<span class="item-spacer"></span> fn <a href="#tymethod.nfc" class="fn">nfc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;I&gt;"></a>;
<span class="item-spacer"></span> fn <a href="#tymethod.nfkc" class="fn">nfkc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;I&gt;"></a>;
<span class="item-spacer"></span> fn <a href="#tymethod.cjk_compat_variants" class="fn">cjk_compat_variants</a>(self) -&gt; <a class="struct" href="struct.Replacements.html" title="struct unicode_normalization::Replacements">Replacements</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Replacements&lt;I&gt;"></a>;
<span class="item-spacer"></span> fn <a href="#tymethod.stream_safe" class="fn">stream_safe</a>(self) -&gt; <a class="struct" href="struct.StreamSafe.html" title="struct unicode_normalization::StreamSafe">StreamSafe</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="StreamSafe&lt;I&gt;"></a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Methods for iterating over strings while applying Unicode normalizations
as described in
<a href="http://www.unicode.org/reports/tr15/">Unicode Standard Annex #15</a>.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.nfd" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#109">source</a><h4 class="code-header">fn <a href="#tymethod.nfd" class="fn">nfd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>Returns an iterator over the string in Unicode Normalization Form D
(canonical decomposition).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.nfkd" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#113">source</a><h4 class="code-header">fn <a href="#tymethod.nfkd" class="fn">nfkd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>Returns an iterator over the string in Unicode Normalization Form KD
(compatibility decomposition).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.nfc" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#117">source</a><h4 class="code-header">fn <a href="#tymethod.nfc" class="fn">nfc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>An Iterator over the string in Unicode Normalization Form C
(canonical decomposition followed by canonical composition).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.nfkc" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#121">source</a><h4 class="code-header">fn <a href="#tymethod.nfkc" class="fn">nfkc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>An Iterator over the string in Unicode Normalization Form KC
(compatibility decomposition followed by canonical composition).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.cjk_compat_variants" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#133">source</a><h4 class="code-header">fn <a href="#tymethod.cjk_compat_variants" class="fn">cjk_compat_variants</a>(self) -&gt; <a class="struct" href="struct.Replacements.html" title="struct unicode_normalization::Replacements">Replacements</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="Replacements&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>A transformation which replaces CJK Compatibility Ideograph codepoints
with normal forms using Standardized Variation Sequences. This is not
part of the canonical or compatibility decomposition algorithms, but
performing it before those algorithms produces normalized output which
better preserves the intent of the original text.</p>
<p>Note that many systems today ignore variation selectors, so these
may not immediately help text display as intended, but they at
least preserve the information in a standardized form, giving
implementations the option to recognize them.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.stream_safe" class="method"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#137">source</a><h4 class="code-header">fn <a href="#tymethod.stream_safe" class="fn">stream_safe</a>(self) -&gt; <a class="struct" href="struct.StreamSafe.html" title="struct unicode_normalization::StreamSafe">StreamSafe</a>&lt;I&gt; <a href="#" class="tooltip" data-notable-ty="StreamSafe&lt;I&gt;"></a></h4></section></summary><div class="docblock"><p>An Iterator over the string with Conjoining Grapheme Joiner characters
inserted according to the Stream-Safe Text Process (UAX15-D4)</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-UnicodeNormalization%3CIntoIter%3Cchar%3E%3E-for-char" class="impl"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#173-203">source</a><a href="#impl-UnicodeNormalization%3CIntoIter%3Cchar%3E%3E-for-char" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.UnicodeNormalization.html" title="trait unicode_normalization::UnicodeNormalization">UnicodeNormalization</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.80.0/core/option/struct.IntoIter.html" title="struct core::option::IntoIter">IntoIter</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a>&gt;&gt; for <a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a></h3></section></summary><div class="impl-items"><section id="method.nfd" class="method trait-impl"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#175-177">source</a><a href="#method.nfd" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.nfd" class="fn">nfd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.80.0/core/option/struct.IntoIter.html" title="struct core::option::IntoIter">IntoIter</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a>&gt;&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;IntoIter&lt;char&gt;&gt;"></a></h4></section><section id="method.nfkd" class="method trait-impl"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#180-182">source</a><a href="#method.nfkd" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.nfkd" class="fn">nfkd</a>(self) -&gt; <a class="struct" href="struct.Decompositions.html" title="struct unicode_normalization::Decompositions">Decompositions</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.80.0/core/option/struct.IntoIter.html" title="struct core::option::IntoIter">IntoIter</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a>&gt;&gt; <a href="#" class="tooltip" data-notable-ty="Decompositions&lt;IntoIter&lt;char&gt;&gt;"></a></h4></section><section id="method.nfc" class="method trait-impl"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#185-187">source</a><a href="#method.nfc" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.nfc" class="fn">nfc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.80.0/core/option/struct.IntoIter.html" title="struct core::option::IntoIter">IntoIter</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a>&gt;&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;IntoIter&lt;char&gt;&gt;"></a></h4></section><section id="method.nfkc" class="method trait-impl"><a class="src rightside" href="../src/unicode_normalization/lib.rs.html#190-192">source</a><a href="#method.nfkc" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.nfkc" class="fn">nfkc</a>(self) -&gt; <a class="struct" href="struct.Recompositions.html" title="struct unicode_normalization::Recompositions">Recompositions</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.80.0/core/option/struct.IntoIter.html" title="struct core::option::IntoIter">IntoIter</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.80.0/std/primitive.char.html">char</a>&gt;&gt; <a href="#" class="tooltip" data-notable-ty="Recompositions&lt;IntoIter&lt;char&gt;&gt;"></a></h4></section><section id="method.cjk_compat_variants" cl