#utf-8 #character #string

无 std utf8-builder

从数据块构建并验证 UTF-8 数据。每个数据块不必是完整的 UTF-8 数据。

3 个版本

0.1.2 2022 年 4 月 30 日
0.1.1 2022 年 4 月 29 日
0.1.0 2022 年 4 月 29 日

2225 in 编码

MIT 许可证

11KB
193

UTF-8 Builder

CI

从数据块构建并验证 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

文档

https://docs.rs/utf8-builder

许可证

MIT

依赖关系

~5KB