7 个版本 (4 个破坏性版本)

0.6.1 2023 年 10 月 22 日
0.6.0 2023 年 10 月 3 日
0.5.0 2023 年 8 月 7 日
0.4.0 2022 年 11 月 25 日
0.1.0 2022 年 5 月 6 日

#4#io-error

Download history 56652/week @ 2024-04-09 60664/week @ 2024-04-16 65091/week @ 2024-04-23 65157/week @ 2024-04-30 60009/week @ 2024-05-07 75038/week @ 2024-05-14 73684/week @ 2024-05-21 82299/week @ 2024-05-28 73134/week @ 2024-06-04 84139/week @ 2024-06-11 86068/week @ 2024-06-18 93628/week @ 2024-06-25 84074/week @ 2024-07-02 94643/week @ 2024-07-09 99719/week @ 2024-07-16 84458/week @ 2024-07-23

381,451 每月下载量
用于 602 个 crate (71 直接使用)

MIT/Apache

31KB
459

crates.io crates.io Documentation

嵌入式-I/O

该项目由 HAL 团队 开发和维护。

嵌入式系统的输入/输出特性。

Rust 的 std::io 特性在 no_std 目标中不可用,主要是因为 std::io::Error 需要分配。此 crate 包含替代等效特性,可用于 no_std 目标。

std::io 的区别

  • Error 是一个关联类型。这允许每个实现者返回自己的错误类型,同时避免使用 dynBox。这与 embedded-hal 中处理错误的方式一致。
  • std::io 中,Read/Write 特性可能是阻塞的或非阻塞的(即返回 WouldBlock 错误),这取决于文件描述符的模式,这在运行时才知道。这允许将非阻塞流传递给期望阻塞流的代码,导致意外的错误。为了解决这个问题,embedded-io 规定 Read/Write 总是阻塞的,并添加了新的 ReadReady/WriteReady 特性,以便以非阻塞方式使用流。

可选的 Cargo 功能

  • std: 添加从/到 std::io 结构的转换实现,添加 std::error::Error 实现的 From
  • alloc:为 Box 添加泛型实现,为 Vec 添加 Write 实现。
  • defmt-03:从 defmt 0.3 版本派生 defmt::Format 用于枚举和结构体。

最低支持的 Rust 版本 (MSRV)

本包保证在稳定 Rust 1.60 及以上版本上可编译。它可能可以用较旧的版本编译,但这可能在任何新的补丁版本中改变。

有关如何升级 MSRV 的详细信息,请参阅此处

许可证

根据您的选择,许可协议为以下之一:

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您提交的旨在包含在作品中的任何有意贡献,将如上所述双重许可,没有其他附加条款或条件。

依赖项

~155KB