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