4 个版本
0.2.2 | 2022年8月25日 |
---|---|
0.2.1 | 2022年7月19日 |
0.2.0 | 2022年5月28日 |
0.1.0 | 2022年5月27日 |
#847 在 文本处理
277 每月下载量
用于 2 crates
8KB
119 行
slicedisplay - Vecs 和 slices 的轻量级 Display
slicedisplay
是一个微小的 no-std
crate,它提供了 SliceDisplay
trait。
这个 trait 扩展了 AsRef<[T]>
,添加了 display
方法,允许格式化而不进行堆分配。
需要至少 Rust 1.58。
用法
use slicedisplay::SliceDisplay;
let empty: Vec<u8> = Vec::new();
assert_eq!(empty.display().to_string(), "[]");
let single = Vec::from([1]);
assert_eq!(single.display().to_string(), "[1]");
let numbers = Vec::from([1, 2, 3, 4, 5]);
assert_eq!(numbers.display().to_string(), "[1, 2, 3, 4, 5]");
也可以稍微自定义显示。
use slicedisplay::SliceDisplay;
let hello: Vec<_> = "Hello".chars().collect();
assert_eq!(
hello.display().delimiter(';').to_string(),
"[H; e; l; l; o]"
);
assert_eq!(
hello.display().terminator('{', '}').to_string(),
"{H, e, l, l, o}"
);
assert_eq!(
hello
.display()
.terminator('(', ')')
.delimiter(';')
.to_string(),
"(H; e; l; l; o)"
);
assert_eq!(
hello
.display()
.terminator('(', ')')
.delimiter(';')
.should_space(false)
.to_string(),
"(H;e;l;l;o)"
);