3 个版本
0.1.2 | 2022 年 4 月 30 日 |
---|---|
0.1.1 | 2022 年 4 月 29 日 |
0.1.0 | 2022 年 4 月 29 日 |
2225 in 编码
11KB
193 行
UTF-8 Builder
从数据块构建并验证 UTF-8 数据。每个数据块不必是完整的 UTF-8 数据。
动机和示例
当我们要使我们的 Rust 程序输入 UTF-8 数据时,我们可以将所有数据存储在内存中,并使用 String::from_utf8(vec)
来验证它并将其转换为 String
实例。
然而,如果在获取和将数据存储到内存的同时进行 UTF-8 验证会更好。这样,如果数据不是 UTF-8,我们就不必浪费内存空间和时间来存储所有数据。
use utf8_builder::Utf8Builder;
const TEXT1: &str = "is is English.";
const TEXT2: &str = "這是中文。";
let mut builder = Utf8Builder::new();
builder.push(b'T').unwrap();
builder.push_char('h').unwrap();
builder.push_str(TEXT1).unwrap();
builder.push_chunk(TEXT2.as_bytes()).unwrap();
let result = builder.finalize().unwrap();
assert_eq!(format!("Th{}{}", TEXT1, TEXT2), result);
无 Std
禁用默认功能,以无 std 编译此包。
[dependencies.utf8-builder]
version = "*"
default-features = false
Crates.io
https://crates.io/crates/utf8-builder
文档
许可证
依赖关系
~5KB