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§

Traits§

  • A BufReadBack is a type of ReadBacker 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.