#data-stream #byte-stream #io #data-source #reading #extension #traits

无std 数据流

用于使用流读写数据的扩展特质

3个版本 (稳定版)

2.0.0-pre.1 2024年8月16日
1.1.0 2024年7月21日
1.0.0 2024年3月10日

#340文本处理

Download history 125/week @ 2024-07-21 16/week @ 2024-07-28 65/week @ 2024-08-11

每月下载量:206

Apache-2.0

95KB
2K SLoC

数据流

数据流为使用流读写数据提供流扩展特质。

使用方法

使用data-streams添加依赖项,使用cargo add data-streams命令,或在您的Cargo.toml中进行手动添加

[dependencies]
data-streams = "1.1.0"
use data_streams::{DataSource, DataSink, Result};

fn read(source: &mut impl DataSource) -> Result<()> {
	let int: i32 = source.read_i32()?; // or use generic read_int()
	let str: &str = source.read_utf8_to_end(&mut String::default())?;
	let bytes: &[u8] = source.read_bytes(&mut [0; 128])?;
}

fn write(source: &mut impl DataSink) -> Result<()> {
	source.write_i32(12345)?; // or use generic write_int()
	source.write_utf8("something")?;
	source.write_bytes(&[1, 2, 3, 4, 5])?;
}

功能标志

utf8功能启用使用UTF-8字节的读取,由simdutf8crate提供高性能验证。

no_std支持

这个crate支持no_std和没有alloc的环境。分别通过stdalloc功能来切换。使用no_std可以在嵌入式环境中使用,但会失去std::io提供的类型实现。禁用alloc将移除向向量/字符串读取。

依赖关系

~220–310KB