#buffer #no-alloc #io-read

no-std load-buffer

用于将数据加载到固定大小缓冲区的Crate。类似于BufRead,但允许静态或动态大小,以及no_std使用。

4个版本 (1个稳定版)

1.0.0 2023年11月17日
0.1.3 2023年11月17日
0.1.2 2023年11月17日
0.1.0 2023年11月17日

#140无标准库


用于 rand_blake3

MPL-2.0 许可证

14KB
240

load-buffer

用于将数据加载到固定大小缓冲区的简单Rust库。类似于BufReader,但允许使用静态或动态缓冲区,以及no_std使用。

要使用此库,您需要为您的类型实现Load(自动为Read类型实现此接口),然后将它加载到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.

无运行时依赖

特性