Unicode-aware algorithm to pad or truncate str
in terms of displayed width.
Safely truncate string to display width even not at character boundaries.
use unicode_truncate::UnicodeTruncateStr;
fn main() {
assert_eq!("你好吗".unicode_truncate(5), ("你好", 4));
}
Making sure the string is displayed in exactly number of columns by combining padding and truncating.
use unicode_truncate::UnicodeTruncateStr;
use unicode_truncate::Alignment;
use unicode_width::UnicodeWidthStr;
fn main() {
let str = "你好吗".unicode_pad(5, Alignment::Left, true);
assert_eq!(str, "你好 ");
assert_eq!(str.width(), 5);
}
unicode-truncate
can be built without std
by disabling the default feature std
. However, in
that case unicode_truncate::UnicodeTruncateStr::unicode_pad
won't be available because it depends
on std::string::String
and std::borrow::Cow
.