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

data-streams

Extension traits for reading and writing data with streams

1 stable release

1.0.0 Mar 10, 2024

#25 in #data-source

Download history 190/week @ 2024-03-11 19/week @ 2024-04-01

209 downloads per month

Apache-2.0

16KB
234 lines

Data Streams

Data Streams provides stream extension traits for reading and writing data with streams.

Usage

Add data-streams to your dependencies with cargo add data-streams, or manually in your Cargo.toml:

[dependencies]
data-streams = "1.0.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])?;
}

Dependencies

~0.6–1.1MB
~24K SLoC