<!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 `unicode_width` crate.">
    <meta name="keywords" content="rust, rustlang, rust-lang, unicode_width">

    <title>unicode_width - 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">
    

    <link rel="shortcut icon" href="https://unicode-rs.github.io/unicode-rs_sm.png">
    
</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">
        <a href='../unicode_width/index.html'><img src='https://unicode-rs.github.io/unicode-rs_sm.png' alt='logo' width='100'></a>
        <p class='location'>Crate unicode_width</p><div class="block items"><ul><li><a href="#constants">Constants</a></li><li><a href="#traits">Traits</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'unicode_width', 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=''>unicode_width</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/unicode_width/lib.rs.html#11-131' title='goto source code'>[src]</a></span></h1>
<div class='docblock'><p>Determine displayed width of <code>char</code> and <code>str</code> types according to
<a href="http://www.unicode.org/reports/tr11/">Unicode Standard Annex #11</a>
rules.</p>

<pre class="rust rust-example-rendered">
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">unicode_width</span>;

<span class="kw">use</span> <span class="ident">unicode_width</span>::<span class="ident">UnicodeWidthStr</span>;

<span class="kw">fn</span> <span class="ident">main</span>() {
    <span class="kw">let</span> <span class="ident">teststr</span> <span class="op">=</span> <span class="string">&quot;Ｈｅｌｌｏ, ｗｏｒｌｄ!&quot;</span>;
    <span class="kw">let</span> <span class="ident">width</span> <span class="op">=</span> <span class="ident">UnicodeWidthStr</span>::<span class="ident">width</span>(<span class="ident">teststr</span>);
    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">teststr</span>);
    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;The above string is {} columns wide.&quot;</span>, <span class="ident">width</span>);
    <span class="kw">let</span> <span class="ident">width</span> <span class="op">=</span> <span class="ident">teststr</span>.<span class="ident">width_cjk</span>();
    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;The above string is {} columns wide (CJK).&quot;</span>, <span class="ident">width</span>);
}</pre>

<h1 id='features' class='section-header'><a href='#features'>features</a></h1>
<p>unicode-width supports a <code>no_std</code> feature. This eliminates dependence
on std, and instead uses equivalent functions from core.</p>

<h1 id='cratesio' class='section-header'><a href='#cratesio'>crates.io</a></h1>
<p>You can use this package in your project by adding the following
to your <code>Cargo.toml</code>:</p>

<pre><code class="language-toml">[dependencies]
unicode-width = &quot;0.1.4&quot;
</code></pre>
</div><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table>
                       <tr class=' module-item'>
                           <td><a class="constant" href="constant.UNICODE_VERSION.html"
                                  title='constant unicode_width::UNICODE_VERSION'>UNICODE_VERSION</a></td>
                           <td class='docblock-short'>
                                <p>The version of <a href="http://www.unicode.org/">Unicode</a>
that this version of unicode-width is based on.</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.UnicodeWidthChar.html"
                                  title='trait unicode_width::UnicodeWidthChar'>UnicodeWidthChar</a></td>
                           <td class='docblock-short'>
                                <p>Methods for determining displayed width of Unicode characters.</p>
                           </td>
                       </tr>
                       <tr class=' module-item'>
                           <td><a class="trait" href="trait.UnicodeWidthStr.html"
                                  title='trait unicode_width::UnicodeWidthStr'>UnicodeWidthStr</a></td>
                           <td class='docblock-short'>
                                <p>Methods for determining displayed width of Unicode strings.</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 = "unicode_width";
    </script>
    <script src="../main.js"></script>
    <script defer src="../search-index.js"></script>
</body>
</html>