<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="rustdoc">
    <meta name="description" content="API documentation for the Rust `encode_unicode` crate.">
    <meta name="keywords" content="rust, rustlang, rust-lang, encode_unicode">

    <title>encode_unicode - Rust</title>

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

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

    

    <nav class="sidebar">
        
        <p class='location'>Crate encode_unicode</p><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'encode_unicode', ty: 'mod', relpath: '../'};</script>
    </nav>

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

    <section id='main' class="content">
<h1 class='fqn'><span class='in-band'>Crate <a class="mod" href=''>encode_unicode</a></span><span class='out-of-band'><span id='render-detail'>
                   <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
                       [<span class='inner'>&#x2212;</span>]
                   </a>
               </span><a class='srclink' href='../src/encode_unicode/lib.rs.html#10-46' title='goto source code'>[src]</a></span></h1>
<div class='docblock'><p>Alternative and extension to the unstable <code>char.encode_utf8()</code> and <code>char.encode_utf16()</code>.</p>
</div><h2 id='modules' class='section-header'><a href="#modules">Modules</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="mod" href="error/index.html"
                                  title='mod encode_unicode::error'>error</a></td>
                           <td class='docblock-short'>
                                <p>Errors returned by various conversion methods in this crate.</p>
                           </td>
                       </tr></table><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.Utf16Char.html"
                                  title='struct encode_unicode::Utf16Char'>Utf16Char</a></td>
                           <td class='docblock-short'>
                                <p>Store a <code>char</code> as UTF-16 so it can be borrowed as a slice</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.Utf16Iterator.html"
                                  title='struct encode_unicode::Utf16Iterator'>Utf16Iterator</a></td>
                           <td class='docblock-short'>
                                <p>Iterate over the units in an UTF-16 representation of a codepoint.</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.Utf8Char.html"
                                  title='struct encode_unicode::Utf8Char'>Utf8Char</a></td>
                           <td class='docblock-short'>
                                <p>Store a <code>char</code> as UTF-8 so it can be borrowed as a <code>str</code></p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="struct" href="struct.Utf8Iterator.html"
                                  title='struct encode_unicode::Utf8Iterator'>Utf8Iterator</a></td>
                           <td class='docblock-short'>
                                <p>Read or iterate over the bytes in the UTF-8 representation of a codepoint.</p>
                           </td>
                       </tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="trait" href="trait.CharExt.html"
                                  title='trait encode_unicode::CharExt'>CharExt</a></td>
                           <td class='docblock-short'>
                                <p>Extension trait for <code>char</code> that adds methods for converting to and from UTF-8 or UTF-16.</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="trait" href="trait.U16UtfExt.html"
                                  title='trait encode_unicode::U16UtfExt'>U16UtfExt</a></td>
                           <td class='docblock-short'>
                                <p>Methods for working with <code>u16</code>s as UTF-16 units.</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="trait" href="trait.U8UtfExt.html"
                                  title='trait encode_unicode::U8UtfExt'>U8UtfExt</a></td>
                           <td class='docblock-short'>
                                <p>Methods for working with <code>u8</code>s UTF-8.</p>
                           </td>
                       </tr></table></section>
    <section id='search' class="content hidden"></section>

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

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

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

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

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

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

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

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

    

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