embedrs_bytes/buf/mod.rs
1//! Utilities for working with buffers.
2//!
3//! A buffer is any structure that contains a sequence of bytes. The bytes may
4//! or may not be stored in contiguous memory. This module contains traits used
5//! to abstract over buffers as well as utilities for working with buffer types.
6//!
7//! # `Buf`, `BufMut`
8//!
9//! These are the two foundational traits for abstractly working with buffers.
10//! They can be thought as iterators for byte structures. They offer additional
11//! performance over `Iterator` by providing an API optimized for byte slices.
12//!
13//! See [`Buf`] and [`BufMut`] for more details.
14//!
15//! [rope]: https://en.wikipedia.org/wiki/Rope_(data_structure)
16//! [`Buf`]: trait.Buf.html
17//! [`BufMut`]: trait.BufMut.html
18
19mod buf;
20mod buf_mut;
21#[cfg(feature = "alloc")]
22mod from_buf;
23mod chain;
24mod into_buf;
25mod iter;
26mod reader;
27mod take;
28mod writer;
29
30pub use self::buf::Buf;
31pub use self::buf_mut::BufMut;
32#[cfg(feature = "alloc")]
33pub use self::from_buf::FromBuf;
34pub use self::chain::Chain;
35pub use self::into_buf::IntoBuf;
36pub use self::iter::Iter;
37pub use self::reader::Reader;
38pub use self::take::Take;
39pub use self::writer::Writer;