5个版本 (2个稳定版)
1.1.0 | 2024年7月9日 |
---|---|
1.0.0 | 2024年4月27日 |
0.2.0 | 2020年12月17日 |
0.1.1 | 2019年8月15日 |
0.1.0 | 2019年8月15日 |
#139 in 文本处理
每月下载量227,051次
在447个crate(25直接使用)中使用
27KB
395 行代码
unicode-truncate
基于显示宽度的Unicode感知算法,用于填充或截断str
。
示例
安全地截断字符串到显示宽度,即使在字符边界之外。
use unicode_truncate::UnicodeTruncateStr;
fn main() {
assert_eq!("你好吗".unicode_truncate(5), ("你好", 4));
}
通过结合填充和截断确保字符串以精确的列数显示。
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
可以通过禁用默认功能std
在无需std
的情况下构建。然而,在这种情况下,unicode_truncate::UnicodeTruncateStr::unicode_pad
将不可用,因为它依赖于std::string::String
和std::borrow::Cow
。
依赖
~1.5MB
~17K SLoC