unicode-truncate

Unicode-aware algorithm to pad or truncate str in terms of displayed width.

crates.io Documentation Build Status

examples

Safely truncate string to display width even not at character boundaries. ```rust use unicode_truncate::UnicodeTruncateStr;

fn main() { let (rv, w) = "你好吗".unicodetruncate(5); asserteq!(rv, "你好"); assert_eq!(w, 4); } ```

Making sure the string is displayed in exactly number of columns by combining padding and truncating. ```rust use unicodetruncate::UnicodeTruncateStr; use unicodetruncate::Alignment; use unicode_width::UnicodeWidthStr;

fn main() { let rv = "你好吗".unicodepad(5, Alignment::Left, true); asserteq!(rv, "你好 "); assert_eq!(rv.width(), 5); } ```

features

unicode-truncate can be built without libstd 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.