4个版本
0.6.0 | 2023年6月11日 |
---|---|
0.5.3 | 2023年6月11日 |
0.5.2 | 2023年6月11日 |
0.5.1 | 2023年6月11日 |
0.5.0 |
|
#108 in 无标准库
3,243 每月下载量
用于 21 个包 (7 直接)
130KB
1.5K SLoC
no-std-io
分支
no-std-io
是 core2 的分支。
概述
是否曾在no_std
中想要Cursor
或Error
特质?现在您可以拥有它。这是Rust的std
模块的“分支”,为no_std
环境提供了额外的好处,可选地利用alloc
。
本包的目标是在no_std
环境中提供构建I/O和错误特质功能的一个稳定的接口。当前代码对应于Rust 1.56.0的最新稳定API。它还旨在实现真正的无分配体验,带有可选的分配支持。
本包在stable
上运行,功能有限制,而在nightly
上则通过添加相关功能标志而没有限制。
本包默认为std
— 使用无默认功能以获取no_std
模式。
用法
[dependencies]
no_std_io = "0.5"
添加包,使用您通常想要的std::io
中的功能,但来自no_std_io::io
,并使用no_std_io::error::Error
代替std::error::Error
。
功能
- std: 启用多填充类型的
std
透传,但允许访问新类型 - alloc:启用需要
alloc
支持的Read
和Write
特性(工作进展中) - nightly:启用仅在
nightly
版本中可用的特性,例如具有const泛型缓冲区的BufReader
和BufWriter
。
与std::io
的差异
- 没有
std::io::Error
,所以我们有自己的副本,没有任何Os
错误函数。 IoSlice
和*_vectored
函数族尚未实现。BufReader
和BufWriter
的签名不同,因为它们现在使用const泛型边界数组作为内部缓冲区。(需要nightly
功能)
除了某些项可能完全缺失或在某些特性上某些函数不可用之外,没有更改任何函数签名。
限制
- 由于使用const泛型,目前使用缓冲区类型需要
nightly
。 - 由于使用
initializer
API,目前使用copy
或具有std
支持的缓冲区类型需要nightly
。
许可证
在以下任一许可证下许可
- Apache License,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
此存储库中的几乎所有代码都是Rust语言代码库的副本,仅作少量修改。
关于归属,请参阅https://thanks.rust-lang.org/。
依赖项
~170–315KB