#io-error #stdio #read #read-write #alloc #buffer #traits

无std no_std_io

为无std环境提供std::io的基础功能。分配支持为可选。

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 2023年6月11日

#108 in 无标准库

Download history 57/week @ 2024-03-14 56/week @ 2024-03-21 175/week @ 2024-03-28 513/week @ 2024-04-04 397/week @ 2024-04-11 197/week @ 2024-04-18 573/week @ 2024-04-25 616/week @ 2024-05-02 277/week @ 2024-05-09 638/week @ 2024-05-16 739/week @ 2024-05-23 679/week @ 2024-05-30 723/week @ 2024-06-06 901/week @ 2024-06-13 802/week @ 2024-06-20 723/week @ 2024-06-27

3,243 每月下载量
用于 21 个包 (7 直接)

Apache-2.0 OR MIT

130KB
1.5K SLoC

no-std-io

Actions Status Documentation Minimum Supported Rust Version (MSRV)

分支

no-std-iocore2 的分支。

概述

是否曾在no_std中想要CursorError特质?现在您可以拥有它。这是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支持的ReadWrite特性(工作进展中)
  • nightly:启用仅在nightly版本中可用的特性,例如具有const泛型缓冲区的BufReaderBufWriter

std::io的差异

  • 没有std::io::Error,所以我们有自己的副本,没有任何Os错误函数。
  • IoSlice*_vectored函数族尚未实现。
  • BufReaderBufWriter的签名不同,因为它们现在使用const泛型边界数组作为内部缓冲区。(需要nightly功能)

除了某些项可能完全缺失或在某些特性上某些函数不可用之外,没有更改任何函数签名。

限制

  • 由于使用const泛型,目前使用缓冲区类型需要nightly
  • 由于使用initializer API,目前使用copy或具有std支持的缓冲区类型需要nightly

许可证

在以下任一许可证下许可

任选其一。


此存储库中的几乎所有代码都是Rust语言代码库的副本,仅作少量修改。

关于归属,请参阅https://thanks.rust-lang.org/

依赖项

~170–315KB