#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 • Rust 包仓库 57/week @ 2024-03-14 • Rust 包仓库 56/week @ 2024-03-21 • Rust 包仓库 175/week @ 2024-03-28 • Rust 包仓库 513/week @ 2024-04-04 • Rust 包仓库 397/week @ 2024-04-11 • Rust 包仓库 197/week @ 2024-04-18 • Rust 包仓库 573/week @ 2024-04-25 • Rust 包仓库 616/week @ 2024-05-02 • Rust 包仓库 277/week @ 2024-05-09 • Rust 包仓库 638/week @ 2024-05-16 • Rust 包仓库 739/week @ 2024-05-23 • Rust 包仓库 679/week @ 2024-05-30 • Rust 包仓库 723/week @ 2024-06-06 • Rust 包仓库 901/week @ 2024-06-13 • Rust 包仓库 802/week @ 2024-06-20 • Rust 包仓库 723/week @ 2024-06-27 • Rust 包仓库

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