Crates.io | load-buffer |
lib.rs | load-buffer |
version | 1.0.0 |
source | src |
created_at | 2023-11-17 05:57:08.047286 |
updated_at | 2023-11-17 21:55:48.252602 |
description | Crate for loading data into a fixed-sized buffer. Similar to BufRead, but allowing static or dynamic sizes, and no_std use. |
homepage | |
repository | https://codeberg.org/Taywee/load-buffer |
max_upload_size | |
id | 1038740 |
size | 30,160 |
Simple Rust crate for loading data into a fixed-sized buffer. Similar to BufReader, but allowing static or dynamic buffers, and no_std use.
To use this, you'll need to implement Load for your type (std::io::Read
types automatically implement this), then load it into a BufferedLoader
:
// Static, backed by the array size you give it:
let mut loader: BufferedLoader<[u8; 64], _> =
BufferedLoader::new_static(Loader::default());
// Dynamic, backed by alloc::vec::Vec<u8>:
let mut loader = BufferedLoader::new_dynamic(Loader::default(), 64);
// Dynamic can be resized. This invalidates the buffer.
loader.resize(268435456);
// Heap, backed by alloc::boxed::Box<[u8]>:
let mut loader = BufferedLoader::new_heap(Loader::default(), 268435456);
// Heap can not be resized, but will not fill the stack for huge sizes.
// You can also supply your own buffer type, as long as it implements
// AsRef<[u8]> + AsMut<[u8]> + Debug.