refactor(h1): collapse some duplicate methods from Cursor

This commit is contained in:
Sean McArthur
2018-05-31 15:51:27 -07:00
parent 8ff42dbbb4
commit bb8cb056fd

View File

@@ -254,23 +254,13 @@ pub struct Cursor<T> {
} }
impl<T: AsRef<[u8]>> Cursor<T> { impl<T: AsRef<[u8]>> Cursor<T> {
pub fn new(bytes: T) -> Cursor<T> { #[inline]
pub(crate) fn new(bytes: T) -> Cursor<T> {
Cursor { Cursor {
bytes: bytes, bytes: bytes,
pos: 0, pos: 0,
} }
} }
#[inline]
pub fn buf(&self) -> &[u8] {
&self.bytes.as_ref()[self.pos..]
}
#[inline]
pub fn consume(&mut self, num: usize) {
debug_assert!(self.pos + num <= self.bytes.as_ref().len());
self.pos += num;
}
} }
impl Cursor<Vec<u8>> { impl Cursor<Vec<u8>> {
@@ -299,12 +289,13 @@ impl<T: AsRef<[u8]>> Buf for Cursor<T> {
#[inline] #[inline]
fn bytes(&self) -> &[u8] { fn bytes(&self) -> &[u8] {
self.buf() &self.bytes.as_ref()[self.pos..]
} }
#[inline] #[inline]
fn advance(&mut self, cnt: usize) { fn advance(&mut self, cnt: usize) {
self.consume(cnt) debug_assert!(self.pos + cnt <= self.bytes.as_ref().len());
self.pos += cnt;
} }
} }