From b2efe63c70766a5c70bfe734d4bdd80ecd45913a Mon Sep 17 00:00:00 2001
From: Carl Lerche <me@carllerche.com>
Date: Fri, 5 Aug 2016 22:49:41 -0700
Subject: [PATCH] Get rid of SliceBuf

---
 src/buf/mod.rs   | 12 +++++-----
 src/buf/slice.rs | 59 ------------------------------------------------
 src/lib.rs       |  2 --
 3 files changed, 6 insertions(+), 67 deletions(-)
 delete mode 100644 src/buf/slice.rs

diff --git a/src/buf/mod.rs b/src/buf/mod.rs
index cdd11ea..00a9a32 100644
--- a/src/buf/mod.rs
+++ b/src/buf/mod.rs
@@ -2,14 +2,12 @@ mod append;
 mod byte;
 mod ring;
 mod sink;
-mod slice;
 mod source;
 mod take;
 
 pub use self::append::AppendBuf;
 pub use self::byte::{ByteBuf, MutByteBuf, ROByteBuf};
 pub use self::ring::RingBuf;
-pub use self::slice::{SliceBuf, MutSliceBuf};
 pub use self::take::Take;
 
 use {ByteStr, RopeBuf};
@@ -43,9 +41,10 @@ pub trait Buf {
     /// Returns the number of bytes read.
     ///
     /// ```
-    /// use bytes::{SliceBuf, Buf};
+    /// use std::io::Cursor;
+    /// use bytes::Buf;
     ///
-    /// let mut buf = SliceBuf::wrap(b"hello world");
+    /// let mut buf = Cursor::new(b"hello world");
     /// let mut dst = [0; 5];
     ///
     /// buf.read_slice(&mut dst);
@@ -117,12 +116,13 @@ pub trait MutBuf : Sized {
     /// Returns the number of bytes written.
     ///
     /// ```
-    /// use bytes::{MutSliceBuf, Buf, MutBuf};
+    /// use bytes::MutBuf;
+    /// use std::io::Cursor;
     ///
     /// let mut dst = [0; 6];
     ///
     /// {
-    ///     let mut buf = MutSliceBuf::wrap(&mut dst);
+    ///     let mut buf = Cursor::new(&mut dst);
     ///     buf.write_slice(b"hello");
     ///
     ///     assert_eq!(1, buf.remaining());
diff --git a/src/buf/slice.rs b/src/buf/slice.rs
deleted file mode 100644
index a526803..0000000
--- a/src/buf/slice.rs
+++ /dev/null
@@ -1,59 +0,0 @@
-use std::cmp;
-use {Buf, MutBuf};
-
-// TODO: Rename -> Cursor. Use as buf for various byte strings
-
-pub struct SliceBuf<'a> {
-    bytes: &'a [u8],
-    pos: usize
-}
-
-impl<'a> SliceBuf<'a> {
-    pub fn wrap(bytes: &'a [u8]) -> SliceBuf<'a> {
-        SliceBuf { bytes: bytes, pos: 0 }
-    }
-}
-
-impl<'a> Buf for SliceBuf<'a> {
-    fn remaining(&self) -> usize {
-        self.bytes.len() - self.pos
-    }
-
-    fn bytes<'b>(&'b self) -> &'b [u8] {
-        &self.bytes[self.pos..]
-    }
-
-    fn advance(&mut self, mut cnt: usize) {
-        cnt = cmp::min(cnt, self.remaining());
-        self.pos += cnt;
-    }
-}
-
-pub struct MutSliceBuf<'a> {
-    bytes: &'a mut [u8],
-    pos: usize
-}
-
-impl<'a> MutSliceBuf<'a> {
-    pub fn wrap(bytes: &'a mut [u8]) -> MutSliceBuf<'a> {
-        MutSliceBuf {
-            bytes: bytes,
-            pos: 0
-        }
-    }
-}
-
-impl<'a> MutBuf for MutSliceBuf<'a> {
-    fn remaining(&self) -> usize {
-        self.bytes.len() - self.pos
-    }
-
-    unsafe fn advance(&mut self, mut cnt: usize) {
-        cnt = cmp::min(cnt, self.remaining());
-        self.pos += cnt;
-    }
-
-    unsafe fn mut_bytes<'b>(&'b mut self) -> &'b mut [u8] {
-        &mut self.bytes[self.pos..]
-    }
-}
diff --git a/src/lib.rs b/src/lib.rs
index f79ea9b..1b977d3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,8 +14,6 @@ pub use buf::{
     MutByteBuf,
     RingBuf,
     ROByteBuf,
-    SliceBuf,
-    MutSliceBuf,
     Take,
     ReadExt,
     WriteExt,
-- 
GitLab