Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tornaxo7/readcollection

A collection of different variants of the `std::io::Read` trait.
https://github.com/tornaxo7/readcollection

Last synced: 3 months ago
JSON representation

A collection of different variants of the `std::io::Read` trait.

Awesome Lists containing this project

README

        

# Read Collection
This crate provides some other variants of the [`Read`] trait. Currently there's only `ReadBack`.
Feel free to create PRs for other variants.

# Example (`ReadBack`)
```rust
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]);

// With `ReadBack`:
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]);
}
```

# Status
Implemented:
- [x] `ReadBack` for reading back *duh*
- [x] `ReadBack` trait
- [x] for `&[u8]`
- [x] for [`File`] (and `&File`)
- [x] for [`Empty`]
- [x] `BufReadBack` trait
- [x] for `&[u8]`
- [x] for [`Empty`]
- [x] `BufReadBacker` struct

[`File`]: https://doc.rust-lang.org/std/fs/struct.File.html
[`Read`]: https://doc.rust-lang.org/std/io/trait.Read.html
[`Empty`]: https://doc.rust-lang.org/std/io/struct.Empty.html