From f7f8d6c9efa46827f43d412785c8d554e8fcaf6b Mon Sep 17 00:00:00 2001
From: Carl Lerche <me@carllerche.com>
Date: Tue, 28 Feb 2017 17:09:43 -0800
Subject: [PATCH] Don't re-export everything from `buf` module

---
 src/buf/mod.rs | 18 ++++++++++++++++++
 src/lib.rs     | 11 ++++++++---
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/buf/mod.rs b/src/buf/mod.rs
index ceef927..75738c9 100644
--- a/src/buf/mod.rs
+++ b/src/buf/mod.rs
@@ -1,3 +1,21 @@
+//! Utilities for working with buffers.
+//!
+//! A buffer is any structure that contains a sequence of bytes. The bytes may
+//! or may not be stored in contiguous memory. This module contains traits used
+//! to abstract over buffers as well as utilities for working with buffer types.
+//!
+//! # `Buf`, `BufMut`
+//!
+//! These are the two foundational traits for abstractly working with buffers.
+//! They can be thought as iterators for byte structures. They offer additional
+//! performance over `Iterator` by providing an API optimized for byte slices.
+//!
+//! See [`Buf`] and [`BufMut`] for more details.
+//!
+//! [rope]: https://en.wikipedia.org/wiki/Rope_(data_structure)
+//! [`Buf`]: trait.Buf.html
+//! [`BufMut`]: trait.BufMut.html
+
 use std::{cmp, io, usize};
 
 mod buf;
diff --git a/src/lib.rs b/src/lib.rs
index 8ac73f4..521f80c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -73,17 +73,22 @@
 
 extern crate byteorder;
 
-mod buf;
-mod bytes;
-
+pub mod buf;
 pub use buf::{
     Buf,
     BufMut,
     IntoBuf,
+};
+#[deprecated(since = "0.4.1", note = "moved to `buf` module")]
+#[doc(hidden)]
+pub use buf::{
     Source,
     Reader,
     Writer,
     Take,
 };
+
+mod bytes;
 pub use bytes::{Bytes, BytesMut};
+
 pub use byteorder::{ByteOrder, BigEndian, LittleEndian};
-- 
GitLab