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 |
|
#4 在 #io-error
381,451 每月下载量
用于 602 个 crate (71 直接使用)
31KB
459 行
嵌入式-I/O
该项目由 HAL 团队 开发和维护。
嵌入式系统的输入/输出特性。
Rust 的 std::io
特性在 no_std
目标中不可用,主要是因为 std::io::Error
需要分配。此 crate 包含替代等效特性,可用于 no_std
目标。
与 std::io
的区别
Error
是一个关联类型。这允许每个实现者返回自己的错误类型,同时避免使用dyn
或Box
。这与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 License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您提交的旨在包含在作品中的任何有意贡献,将如上所述双重许可,没有其他附加条款或条件。
依赖项
~155KB