unicode-width-16

Crates.iounicode-width-16
lib.rsunicode-width-16
version
sourcesrc
created_at2024-10-10 22:04:01.715115
updated_at2024-10-10 22:04:01.715115
descriptionDetermine displayed width of `char` and `str` types according to Unicode Standard Annex #11 rules.
homepagehttps://github.com/alacritty/unicode-width-16
repositoryhttps://github.com/alacritty/unicode-width-16
max_upload_size
id1404634
Cargo.toml error:TOML parse error at line 24, column 1 | 24 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Publishers (github:alacritty:publishers)

documentation

https://unicode-rs.github.io/unicode-width

README

unicode-width-16

This crate is a fork of https://github.com/unicode-rs/unicode-width with Unicode 16 support and removed normalization.

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

use unicode_width_16::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.

use unicode_width_16::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-16 = "0.1.0"
Commit count: 62

cargo fmt