From 6f00c6117b72189018866b18bc839600021a479e Mon Sep 17 00:00:00 2001 From: Florian Hartwig <florian.j.hartwig@gmail.com> Date: Tue, 24 Feb 2015 21:16:59 +0100 Subject: [PATCH] Remove RingBufReader and RingBufWriter types --- src/lib.rs | 2 +- src/ring.rs | 54 ++++++++++++++++++----------------------------------- 2 files changed, 19 insertions(+), 37 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 8c4874f..18eb6cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,7 +6,7 @@ pub use byte_buf::{ByteBuf, ROByteBuf, MutByteBuf}; pub use byte_str::{SeqByteStr, SmallByteStr, SmallByteStrBuf}; pub use bytes::Bytes; -pub use ring::{RingBuf, RingBufReader, RingBufWriter}; +pub use ring::RingBuf; pub use rope::{Rope, RopeBuf}; pub use slice::{SliceBuf, MutSliceBuf}; diff --git a/src/ring.rs b/src/ring.rs index 1de98b1..3133350 100644 --- a/src/ring.rs +++ b/src/ring.rs @@ -52,16 +52,6 @@ impl RingBuf { self.cap } - // Access readable bytes as a Buf - pub fn reader<'a>(&'a mut self) -> RingBufReader<'a> { - RingBufReader { ring: self } - } - - // Access writable bytes as a Buf - pub fn writer<'a>(&'a mut self) -> RingBufWriter<'a> { - RingBufWriter { ring: self } - } - fn read_remaining(&self) -> usize { self.len } @@ -141,59 +131,51 @@ impl Drop for RingBuf { } } -pub struct RingBufReader<'a> { - ring: &'a mut RingBuf -} - -impl<'a> Buf for RingBufReader<'a> { +impl Buf for RingBuf { fn remaining(&self) -> usize { - self.ring.read_remaining() + self.read_remaining() } - fn bytes<'b>(&'b self) -> &'b [u8] { - let mut to = self.ring.pos + self.ring.len; + fn bytes(&self) -> &[u8] { + let mut to = self.pos + self.len; - if to > self.ring.cap { - to = self.ring.cap + if to > self.cap { + to = self.cap } - &self.ring.as_slice()[self.ring.pos .. to] + &self.as_slice()[self.pos .. to] } fn advance(&mut self, cnt: usize) { - self.ring.advance_reader(cnt) + self.advance_reader(cnt) } } -pub struct RingBufWriter<'a> { - ring: &'a mut RingBuf -} - -impl<'a> MutBuf for RingBufWriter<'a> { +impl MutBuf for RingBuf { fn remaining(&self) -> usize { - self.ring.write_remaining() + self.write_remaining() } fn advance(&mut self, cnt: usize) { - self.ring.advance_writer(cnt) + self.advance_writer(cnt) } - fn mut_bytes<'b>(&'b mut self) -> &'b mut [u8] { + fn mut_bytes(&mut self) -> &mut [u8] { let mut from; let mut to; - from = self.ring.pos + self.ring.len; - from %= self.ring.cap; + from = self.pos + self.len; + from %= self.cap; - to = from + self.remaining(); + to = from + <Self as MutBuf>::remaining(&self); - if to >= self.ring.cap { - to = self.ring.cap; + if to >= self.cap { + to = self.cap; } - &mut self.ring.as_mut_slice()[from..to] + &mut self.as_mut_slice()[from..to] } } -- GitLab