mirror of
https://github.com/openharmony/third_party_rust_unicode-width.git
synced 2026-07-21 03:35:27 -04:00
ab243ec18358f563636c471d17c238c95e2ca4c9
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.
unicode-width
Determine displayed width of char and str types according to
Unicode Standard Annex #11 rules.
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"
Description
提供 Unicode 字符的宽度计算和显示支持,包括单词换行和填充等。 | A Rust library that provides support for working with Unicode character widths.
Languages
Python
67.4%
Rust
32.6%