mirror of
https://github.com/openharmony/third_party_rust_unicode-width.git
synced 2026-07-01 21:14:01 -04:00
cbad406d036f40c1f2d10eef65312a7be1d9dddb
This diff adds benchmarks to get more info regarding Issue #1. It appears that the remaining difference between the "simple" case and the "cargo" case is the result of a difference in performance between using `match` and `if` for tight loops. I suspect it's because of the way that match arms get reordered: if I manually reorder the "if" statement, I can reproduce the match performance. Also added a couple #[inline] annotations in tables.rs, though the difference in performance in my measurements is negligible. Bumped version number to 0.1.1.
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);
}
features
unicode-width supports a no_std feature. This eliminates dependence
on std, and instead uses equivalent functions from core.
crates.io
You can use this package in your project by adding the following
to your Cargo.toml:
[dependencies]
unicode-width = "0.1.1"
Description
提供 Unicode 字符的宽度计算和显示支持,包括单词换行和填充等。 | A Rust library that provides support for working with Unicode character widths.
Languages
Python
67.4%
Rust
32.6%