| Crates.io | reftake |
| lib.rs | reftake |
| version | 0.1.0 |
| created_at | 2025-07-14 14:23:51.782278+00 |
| updated_at | 2025-07-14 14:23:51.782278+00 |
| description | A non-owning version of `std::io::Take` that wraps an existing reader by reference, allowing limited reads without transferring ownership. |
| homepage | |
| repository | https://github.com/gzsombor/reftake |
| max_upload_size | |
| id | 1751824 |
| size | 22,415 |
RefTake is a non-owning alternative to [std::io::Take] that allows limiting how many bytes can be read from a referenced reader without taking ownership of it.
It is useful in scenarios where:
Read or BufRead&mut R instead of consuming RRead and BufRead implementations respect the byte limit.set_limit().take_ref(limit)Add it to your Cargo.toml:
[dependencies]
reftake = "0.1"
use std::io::{Cursor, Read};
use ref_take::RefTakeExt;
fn main() {
let mut reader = Cursor::new(b"hello world");
let mut limited = (&mut reader).by_ref_take(5);
let mut buffer = String::new();
limited.read_to_string(&mut buffer).unwrap();
assert_eq!(buffer, "hello");
}
MIT OR Apache-2.0
Feel free to open issues, suggest improvements, or submit pull requests.
std::io::Take — the owning versionBufReader — for buffered readers