aboutsummaryrefslogtreecommitdiff
path: root/src/buf/ext/reader.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/buf/ext/reader.rs')
-rw-r--r--src/buf/ext/reader.rs81
1 files changed, 0 insertions, 81 deletions
diff --git a/src/buf/ext/reader.rs b/src/buf/ext/reader.rs
deleted file mode 100644
index dde3548..0000000
--- a/src/buf/ext/reader.rs
+++ /dev/null
@@ -1,81 +0,0 @@
-use crate::Buf;
-
-use std::{cmp, io};
-
-/// A `Buf` adapter which implements `io::Read` for the inner value.
-///
-/// This struct is generally created by calling `reader()` on `Buf`. See
-/// documentation of [`reader()`](trait.Buf.html#method.reader) for more
-/// details.
-#[derive(Debug)]
-pub struct Reader<B> {
- buf: B,
-}
-
-pub fn new<B>(buf: B) -> Reader<B> {
- Reader { buf }
-}
-
-impl<B: Buf> Reader<B> {
- /// Gets a reference to the underlying `Buf`.
- ///
- /// It is inadvisable to directly read from the underlying `Buf`.
- ///
- /// # Examples
- ///
- /// ```rust
- /// use bytes::buf::BufExt;
- ///
- /// let buf = b"hello world".reader();
- ///
- /// assert_eq!(b"hello world", buf.get_ref());
- /// ```
- pub fn get_ref(&self) -> &B {
- &self.buf
- }
-
- /// Gets a mutable reference to the underlying `Buf`.
- ///
- /// It is inadvisable to directly read from the underlying `Buf`.
- pub fn get_mut(&mut self) -> &mut B {
- &mut self.buf
- }
-
- /// Consumes this `Reader`, returning the underlying value.
- ///
- /// # Examples
- ///
- /// ```rust
- /// use bytes::{Buf, buf::BufExt};
- /// use std::io;
- ///
- /// let mut buf = b"hello world".reader();
- /// let mut dst = vec![];
- ///
- /// io::copy(&mut buf, &mut dst).unwrap();
- ///
- /// let buf = buf.into_inner();
- /// assert_eq!(0, buf.remaining());
- /// ```
- pub fn into_inner(self) -> B {
- self.buf
- }
-}
-
-impl<B: Buf + Sized> io::Read for Reader<B> {
- fn read(&mut self, dst: &mut [u8]) -> io::Result<usize> {
- let len = cmp::min(self.buf.remaining(), dst.len());
-
- Buf::copy_to_slice(&mut self.buf, &mut dst[0..len]);
- Ok(len)
- }
-}
-
-impl<B: Buf + Sized> io::BufRead for Reader<B> {
- fn fill_buf(&mut self) -> io::Result<&[u8]> {
- Ok(self.buf.bytes())
- }
- fn consume(&mut self, amt: usize) {
- self.buf.advance(amt)
- }
-}