1 unstable release
0.1.0 | Mar 29, 2024 |
---|
#344 in Internationalization (i18n)
5KB
50 lines
This library provides a wrapper struct CJKAlign
to align CJK and emoji characters
correctly on terminals. Despite its name, it works for other Unicode characters too
as supported by the unicode-width crate.
use cjk_align::CJKAlign;
assert_eq!(format!("{:6}", CJKAlign("你好")), "你好 ");
assert_eq!(format!("{:>6}", CJKAlign("你好")), " 你好");
assert_eq!(format!("{:^6}", CJKAlign("你好")), " 你好 ");
assert_eq!(format!("{:^7}", CJKAlign("你好")), " 你好 ");
To treat East Asian ambiguous width characters as double width, use
CJKAlignWide
instead:
use cjk_align::{CJKAlign, CJKAlignWide};
assert_eq!(format!("{:8}", CJKAlign("“……”")), "“……” ");
assert_eq!(format!("{:8}", CJKAlignWide("“……”")), "“……”");
lib.rs
:
This library provides a wrapper struct [CJKAlign] to align CJK and emoji characters correctly on terminals. Despite its name, it works for other Unicode characters too as supported by the unicode-width crate.
use cjk_align::CJKAlign;
assert_eq!(format!("{:6}", CJKAlign("你好")), "你好 ");
assert_eq!(format!("{:>6}", CJKAlign("你好")), " 你好");
assert_eq!(format!("{:^6}", CJKAlign("你好")), " 你好 ");
assert_eq!(format!("{:^7}", CJKAlign("你好")), " 你好 ");
To treat East Asian ambiguous width characters as double width, use [CJKAlignWide] instead:
use cjk_align::{CJKAlign, CJKAlignWide};
assert_eq!(format!("{:8}", CJKAlign("“……”")), "“……” ");
assert_eq!(format!("{:8}", CJKAlignWide("“……”")), "“……”");
Dependencies
~1.5MB
~19K SLoC