Christian Duerr ab243ec183 Update to unicode 12.1
This updates the tables.rs file to be compatible with the latest
available unicode standard, allowing for new glyphs like the yawning
face to be recognized properly.

The unicode.py script has also been updated to python3, since that
should be supported on more systems.
2019-12-05 10:41:59 +01:00
2019-12-05 10:41:59 +01:00
2019-12-05 10:41:59 +01:00
2019-08-19 08:21:27 -07:00
2015-04-14 00:06:50 -04:00
2015-04-14 00:06:50 -04:00
2015-04-14 00:06:50 -04:00
2019-11-28 16:41:10 +00:00

unicode-width

Determine displayed width of char and str types according to Unicode Standard Annex #11 rules.

Build Status

Documentation

extern crate unicode_width;

use unicode_width::UnicodeWidthStr;

fn main() {
    let teststr = "Hello, world!";
    let width = UnicodeWidthStr::width(teststr);
    println!("{}", teststr);
    println!("The above string is {} columns wide.", width);
    let width = teststr.width_cjk();
    println!("The above string is {} columns wide (CJK).", width);
}

NOTE: The computed width values may not match the actual rendered column width. For example, the woman scientist emoji comprises of a woman emoji, a zero-width joiner and a microscope emoji.

extern crate unicode_width;
use unicode_width::UnicodeWidthStr;

fn main() {
    assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman
    assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope
    assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist
}

See Unicode Standard Annex #11 for precise details on what is and isn't covered by this crate.

features

unicode-width does not depend on libstd, so it can be used in crates with the #![no_std] attribute.

crates.io

You can use this package in your project by adding the following to your Cargo.toml:

[dependencies]
unicode-width = "0.1.5"
S
Description
提供 Unicode 字符的宽度计算和显示支持,包括单词换行和填充等。 | A Rust library that provides support for working with Unicode character widths.
Readme 1.1 MiB
Languages
Python 67.4%
Rust 32.6%