3 个版本
0.1.3 | 2024 年 6 月 11 日 |
---|---|
0.1.2 | 2024 年 5 月 13 日 |
0.1.1 |
|
0.1.0 | 2024 年 4 月 11 日 |
#1161 在 数据结构
232 每月下载量
在 fmod-oxide 中使用
39KB
585 行
与 camino 类似,但用于 C 字符串
lib.rs
:
std 的 C 字符串类型的 UTF-8 等价物。
lanyard
是 std::ffi
模块的扩展,它添加了新的 Utf8CStr
和 Utf8CString
类型。它们类似于标准库中的 CStr
和 CString
类型,但它们保证是有效的 UTF-8。
因此,它们允许无损地转换为字符串,实现了 Display
等功能。标准库中的 std::ffi
类型不保证是有效的 UTF-8,这是标准库的正确选择。
然而,在 FFI 中,遇到期望所有字符串都是 UTF-8 的 API 并不罕见。这通常要求crate作者在Rust-C边界之间通过 CString
在 &str
和 CStr
之间进行转换(这会每次分配)。
使用 UTF-8 C 字符串,&str
和 Utf8CStr
之间的转换是明确的,并且可以最小化分配。