Peti ini adalah garpu https://github.com/unicode-rs/unicode-dan dengan dukungan unicode 16 dan dihapus normalization .
Tentukan lebar yang ditampilkan dari tipe char dan str sesuai dengan aturan Unicode Standard Annex #11.
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 ) ;
}CATATAN: Nilai lebar yang dihitung mungkin tidak cocok dengan lebar kolom yang diberikan. Misalnya, emoji ilmuwan wanita terdiri dari emoji wanita, seorang joiner nol-lebar dan emoji mikroskop.
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
}Lihat Unicode Standard Annex #11 untuk perincian yang tepat tentang apa yang dan tidak dicakup oleh peti ini.
Unicode-lebar tidak bergantung pada libstd, sehingga dapat digunakan dalam peti dengan atribut #![no_std] .
Anda dapat menggunakan paket ini dalam proyek Anda dengan menambahkan yang berikut ini ke Cargo.toml Anda.
[ dependencies ]
unicode-width-16 = " 0.1.0 "