#display #string #text #str

slicedisplay

Vecs 和 slices 的简单显示实现

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文本处理

Download history 68/week @ 2024-03-26 132/week @ 2024-04-02 80/week @ 2024-04-09 122/week @ 2024-04-16 104/week @ 2024-04-23 78/week @ 2024-04-30 120/week @ 2024-05-07 69/week @ 2024-05-14 91/week @ 2024-05-21 95/week @ 2024-05-28 164/week @ 2024-06-04 116/week @ 2024-06-11 74/week @ 2024-06-18 43/week @ 2024-06-25 55/week @ 2024-07-02 99/week @ 2024-07-09

277 每月下载量
用于 2 crates

MIT/Apache

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)"
);

无运行时依赖