Crate read_collection
source ·Expand description
This crate provides a collection of different variations of std::io::Read. At the moment, there’s only ReadBack. Feel free to suggest other possible std::io::Read variants which could be added to this collection.
You’ll likely want to use one of the following traits:
§Example with ReadBack
use read_collection::ReadBack;
use std::io::Read;
fn main() {
let values = [1, 2, 3];
let mut buffer = [0, 0];
// How it could look like with `Read`:
assert_eq!(values.as_slice().read(&mut buffer).ok(), Some(2));
assert_eq!(buffer, [1, 2]);
println!("With Read: buffer = [{}, {}]", buffer[0], buffer[1]);
// The read-back version:
assert_eq!(values.as_slice().read_back(&mut buffer).ok(), Some(2));
// [-----] and the buffer contains the value starting from the back!
assert_eq!(buffer, [2, 3]);
println!("With ReadBack: buffer = [{}, {}]", buffer[0], buffer[1]);
}
Output:
With Read: buffer = [1, 2]
With ReadBack: buffer = [2, 3]
Structs§
- The
BufReadBacker<R>
struct adds buffering to anyReadBack
er. - An iterator over
u8
values of a read-back reader. - Adapter to chain together two
ReadBack
s. - An iterator over the contents of an instance of
BufReadBack
split on a particular byte. - Reader adapter which limits the bytes read from an underlying reader.
Traits§
- A
BufReadBack
is a type ofReadBack
er which has an internal buffer, allowing it to perform extra ways of reading. - A trait to read back the content which has been read with the methods of std::io::Read.