#string #reference #slice #thin #abi #unix #nul

nightly null-terminated

带有薄引用的空终止符切片和 UTF-8 编码字符串的库

24 个版本

使用旧的 Rust 2015

0.3.17 2021 年 12 月 14 日
0.3.15 2021 年 5 月 26 日
0.3.14 2019 年 12 月 9 日
0.3.9 2019 年 4 月 24 日
0.2.6 2017 年 12 月 22 日

#2175 in Rust 模式

Download history 151/week @ 2024-03-13 126/week @ 2024-03-20 178/week @ 2024-03-27 175/week @ 2024-04-03 128/week @ 2024-04-10 185/week @ 2024-04-17 150/week @ 2024-04-24 133/week @ 2024-05-01 109/week @ 2024-05-08 90/week @ 2024-05-15 92/week @ 2024-05-22 103/week @ 2024-05-29 172/week @ 2024-06-05 210/week @ 2024-06-12 155/week @ 2024-06-19 150/week @ 2024-06-26

700 每月下载量
用于 9 个 crate(6 个直接使用)

MIT/Apache 许可证

20KB
317 行代码(不含注释)

null-terminated

空终止符切片UTF-8 编码字符串的库,这些引用是薄指针,以提高效率和易于与 FFI 一起使用

可能的用例主要是 C FFI 和 OS ABI(例如:在 Unix 上,许多系统调用需要空终止的参数,初始环境也涉及空终止的参数)。

由于表示是元素类型的裸指针,可以声明仅接受参数或返回类型为 Nul<_> 的外函数,例如

extern "C" {
    fn strlen(_: &Nul<u8>) -> usize;
    fn strchr(_: &Nul<u8>, _: c_int) -> &Nul<u8>;
}

更多示例,请参阅Nul的文档。

许可证:MIT OR Apache-2.0


lib.rs:

空终止符切片UTF-8 编码字符串的库,这些引用是薄指针,以提高效率和易于与 FFI 一起使用

可能的用例主要是 C FFI 和 OS ABI(例如:在 Unix 上,许多系统调用需要空终止的参数,初始环境也涉及空终止的参数)。

由于表示是元素类型的裸指针,可以声明仅接受参数或返回类型为 Nul<_> 的外函数,例如

extern "C" {
    fn strlen(_: &Nul<u8>) -> usize;
    fn strchr(_: &Nul<u8>, _: c_int) -> &Nul<u8>;
}

更多示例,请参阅Nul的文档。

依赖项

~1.5MB
~35K SLoC