#io #read-write #core

无std acid_io

适用于无std的简化版std::io

1个不稳定版本

0.1.0 2022年1月10日

#130无标准库

Download history 212/week @ 2024-03-13 317/week @ 2024-03-20 279/week @ 2024-03-27 279/week @ 2024-04-03 307/week @ 2024-04-10 357/week @ 2024-04-17 328/week @ 2024-04-24 393/week @ 2024-05-01 196/week @ 2024-05-08 252/week @ 2024-05-15 256/week @ 2024-05-22 288/week @ 2024-05-29 247/week @ 2024-06-05 296/week @ 2024-06-12 393/week @ 2024-06-19 183/week @ 2024-06-26

1,143 每月下载量
用于 17 个Crate (4 直接)

MIT/Apache

305KB
4.5K SLoC

acid_io

适用于no_std环境下的Rust的std::io简化版本。


Rust的std::io提供了广泛用于Rust生态系统中的读取和写入数据的通用接口。然而,截至2022年,这些接口在no_std构建中不可用。

此包提供了std::io暴露的类型和特征的直接替换,可用于no_std

示例

#![no_std]

use acid_io::{
    byteorder::{BE, LE, ReadBytesExt, WriteBytesExt},
    Cursor, Read, Seek, SeekFrom, Write,
};

let mut buf = [0u8; 10];
let mut curs = Cursor::new(&mut buf);

curs.write_u8(1)?;
curs.write_u16::<BE>(2)?;
curs.write_u32::<LE>(3)?;

curs.seek(SeekFrom::Start(0))?;

assert_eq!(curs.read_u8()?, 1);
assert_eq!(curs.read_u16::<BE>()?, 2);
assert_eq!(curs.read_u32::<LE>()?, 3);

功能标志

  • std

    std::io的相应导出替换所有项目。这实际上使acid_io成为std::io的别名,但缺少acid_io不会提供的项目。

  • alloc

    公开BufReaderBufWriter,以及那些接受或返回VecString的trait方法。

  • byteorder

    公开acid_io::byteorder,它包含acid_ioReadWrite trait的ReadBytesExtWriteBytesExt实现。还重新导出byteorder的其余部分。

致谢

此库的大部分内容直接或略作修改自其他Rust项目

如果您觉得这个Crate很有用,请考虑在GitHub上赞助Library团队的成员。

许可证

在以下许可证下授权

由你选择。

贡献

除非你明确表示,否则根据Apache-2.0许可证的定义,你有意提交的任何贡献,用于包含在本工作中,都将按上述方式双重许可,没有任何附加条款或条件。

依赖项

~0.2–37MB
~531K SLoC