| 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 |  | 
|---|
| 17 | mod buf_impl; | 
|---|
| 18 | mod buf_mut; | 
|---|
| 19 | mod chain; | 
|---|
| 20 | mod iter; | 
|---|
| 21 | mod limit; | 
|---|
| 22 | #[ cfg(feature = "std")] | 
|---|
| 23 | mod reader; | 
|---|
| 24 | mod take; | 
|---|
| 25 | mod uninit_slice; | 
|---|
| 26 | mod vec_deque; | 
|---|
| 27 | #[ cfg(feature = "std")] | 
|---|
| 28 | mod writer; | 
|---|
| 29 |  | 
|---|
| 30 | pub use self::buf_impl::Buf; | 
|---|
| 31 | pub use self::buf_mut::BufMut; | 
|---|
| 32 | pub use self::chain::Chain; | 
|---|
| 33 | pub use self::iter::IntoIter; | 
|---|
| 34 | pub use self::limit::Limit; | 
|---|
| 35 | pub use self::take::Take; | 
|---|
| 36 | pub use self::uninit_slice::UninitSlice; | 
|---|
| 37 |  | 
|---|
| 38 | #[ cfg(feature = "std")] | 
|---|
| 39 | pub use self::{reader::Reader, writer::Writer}; | 
|---|
| 40 |  | 
|---|