#iterator #reader #read

iter-read

A Read implementation for iterators over u8 and related types

5 unstable releases

0.3.1 Jan 24, 2022
0.3.0 Jun 17, 2020
0.2.1 Sep 18, 2019
0.2.0 Oct 28, 2018
0.1.0 Apr 24, 2016

#199 in Algorithms

Download history 5631/week @ 2022-08-17 4791/week @ 2022-08-24 5570/week @ 2022-08-31 5643/week @ 2022-09-07 5522/week @ 2022-09-14 4986/week @ 2022-09-21 6228/week @ 2022-09-28 5814/week @ 2022-10-05 5738/week @ 2022-10-12 5578/week @ 2022-10-19 4957/week @ 2022-10-26 3580/week @ 2022-11-02 2392/week @ 2022-11-09 2403/week @ 2022-11-16 2438/week @ 2022-11-23 1667/week @ 2022-11-30

9,564 downloads per month
Used in 45 crates (4 directly)

MIT/Apache

15KB
278 lines

iter-read

Build status Latest Version

Documentation

This crate is a small library that provides a type that implements std::io::Read for iterators over bytes (u8) and sequences of it, and also Result<u8, E>, Result<Vec<u8>, E> etc.

The iterators must be fused (i.e. guarantee a None return from next() after they have returned None once); you need to call .fuse() on iterators that don't implement std::iter::FusedIterator.

Installation

This crate works with Cargo and can be found on crates.io with a Cargo.toml like:

[dependencies]
iter-read = "0.3"

Requirements

Minimum supported Rust version is 1.31.0. No other dependencies.

Usage

A simple example:

use std::io::Read;
use iter_read::IterRead;
let source = vec![1, 2, 7, 42, 123];
let mut reader = IterRead::new(source.iter());
let mut buf = vec![0; 3];
reader.read_exact(&mut buf).unwrap();
assert_eq!(buf, b"\x01\x02\x07");

No runtime deps

Features

  • unstable