Skip to content

Displayed width of Unicode characters and strings according to UAX#11 rules.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

GuillaumeGomez/unicode-width

This branch is 1 commit ahead of, 98 commits behind unicode-rs/unicode-width:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

784159c · Apr 30, 2019

History

30 Commits
Dec 23, 2016
Apr 30, 2019
Apr 19, 2015
May 19, 2018
Apr 14, 2015
Apr 30, 2019
Apr 14, 2015
Apr 14, 2015
Oct 11, 2018

Repository files navigation

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"

About

Displayed width of Unicode characters and strings according to UAX#11 rules.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 74.8%
  • Python 25.2%