/// 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)] pubstruct Reader<B> {
buf: B,
}
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; /// /// let buf = b"hello world".reader(); /// /// assert_eq!(b"hello world", buf.get_ref()); /// ``` pubfn get_ref(&self) -> &B {
&self.buf
}
/// Gets a mutable reference to the underlying `Buf`. /// /// It is inadvisable to directly read from the underlying `Buf`. pubfn get_mut(&mutself) -> &mut B {
&mutself.buf
}
/// Consumes this `Reader`, returning the underlying value. /// /// # Examples /// /// ```rust /// use bytes::Buf; /// 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()); /// ``` pubfn into_inner(self) -> B { self.buf
}
}
impl<B: Buf + Sized> io::Read for Reader<B> { fn read(&mutself, dst: &mut [u8]) -> io::Result<usize> { let len = cmp::min(self.buf.remaining(), dst.len());
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.