19 个版本 (12 个重大变更)
| 0.14.1 | 2024 年 1 月 11 日 |
|---|---|
| 0.13.0 | 2023 年 6 月 30 日 |
| 0.12.2 | 2023 年 3 月 29 日 |
| 0.12.0 | 2022 年 11 月 27 日 |
| 0.3.0 | 2021 年 3 月 5 日 |
#528 在 Rust 模式
用于 nameless
86KB
2K SLoC
将 I/O 数组想象成一个 Vec<u8>,它存在于程序外部。你可以对它进行索引并复制数据进出。你可以从后端向它追加数据或缩小它。
在 I/O 术语中,I/O 数组是 "文件" 的抽象。它支持在任意偏移量处进行 I/O、追加和截断。你可以使用 ReadAt::read_via_stream_at 以流式方式从它读取。
待办事项:以流式方式向数组写入尚不支持。
该包定义了 ReadAt、WriteAt 和 EditAt 特性,它们定义了随机访问或可寻址设备的接口,如普通文件、块设备、磁盘分区和内存缓冲区。
它还定义了 ArrayReader、ArrayWriter 和 ArrayEditor 类型,它们实现了上述特性,并可以从任何类似文件的类型构建。在 Posix-like 平台上,随着对 WASI 的开发支持,这些类型仅包含一个文件描述符(并实现 AsRawFd),以及任何用于安全保留文件描述符所需资源。在 Windows 上,它们包含一个文件句柄(并实现 AsRawHandle)。
由于这些 crate 尚未包含所需的 I/O 安全特性实现,异步 std 的支持暂时禁用。
依赖关系
~3–12MB
~143K SLoC