aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Douman <douman@gmx.se> 2019-08-27 22:09:43 +0200
committerGravatar Carl Lerche <me@carllerche.com> 2019-08-27 13:09:43 -0700
commitb6cb346adfaae89bce44bfa337652e6d218d38c4 (patch)
tree0e6cb36b1db4ece480554bce0f2f0ab307013931
parent79e4b2847f27137faaf149d116a352cbeae47fd1 (diff)
downloadbytes-b6cb346adfaae89bce44bfa337652e6d218d38c4.tar.gz
bytes-b6cb346adfaae89bce44bfa337652e6d218d38c4.tar.zst
bytes-b6cb346adfaae89bce44bfa337652e6d218d38c4.zip
Remove IntoBuf/FromBuf (#288)
As consequence Buf::collect is removed as well, which is replaced with `Buf::into_bytes`. The advantage of `Buf::into_bytes` is that it can be optimized in cases where converting a `T: Buf` into a `Bytes` instance is efficient.
-rw-r--r--ci/azure-cross-compile.yml1
-rw-r--r--ci/cross-patch8
-rw-r--r--src/buf/buf.rs77
-rw-r--r--src/buf/buf_mut.rs10
-rw-r--r--src/buf/chain.rs34
-rw-r--r--src/buf/from_buf.rs117
-rw-r--r--src/buf/into_buf.rs129
-rw-r--r--src/buf/iter.rs14
-rw-r--r--src/buf/mod.rs4
-rw-r--r--src/buf/vec_deque.rs4
-rw-r--r--src/bytes.rs18
-rw-r--r--src/lib.rs1
-rw-r--r--tests/test_buf_mut.rs2
-rw-r--r--tests/test_bytes.rs12
-rw-r--r--tests/test_chain.rs6
-rw-r--r--tests/test_from_buf.rs33
16 files changed, 97 insertions, 373 deletions
diff --git a/ci/azure-cross-compile.yml b/ci/azure-cross-compile.yml
index cdcc197..62840f5 100644
--- a/ci/azure-cross-compile.yml
+++ b/ci/azure-cross-compile.yml
@@ -37,6 +37,7 @@ jobs:
- script: |
git clone https://github.com/rust-embedded/cross.git
cd cross
+ git reset --hard fb1cb1d7288151f4349f1cb4c990e0e2281764da #Is broken after this commit (images are not uploaded to new docker hub)
git apply ../ci/cross-patch
cargo install --path .
rm -rf cross
diff --git a/ci/cross-patch b/ci/cross-patch
index f59b551..b1fb4ba 100644
--- a/ci/cross-patch
+++ b/ci/cross-patch
@@ -1,5 +1,5 @@
-diff --git a/src/docker.rs b/src/docker.rs
-index 1525b87..5c9cd54 100644
+diff --git a/src/docker.rs b/src/docker.rs
+index 6ea745d..15fef81 100644
--- a/src/docker.rs
+++ b/src/docker.rs
@@ -62,7 +62,7 @@ pub fn register(target: &Target, verbose: bool) -> Result<()> {
@@ -12,8 +12,8 @@ index 1525b87..5c9cd54 100644
.args(&["sh", "-c", cmd])
.run(verbose)
@@ -160,7 +160,7 @@ pub fn run(target: &Target,
- .args(&["-v", &format!("{}:/rust:ro", sysroot.display())])
- .args(&["-v", &format!("{}:/target", target_dir.display())])
+ .args(&["-v", &format!("{}:/rust:Z,ro", sysroot.display())])
+ .args(&["-v", &format!("{}:/target:Z", target_dir.display())])
.args(&["-w", "/project"])
- .args(&["-it", &image(toml, target)?])
+ .args(&["-i", &image(toml, target)?])
diff --git a/src/buf/buf.rs b/src/buf/buf.rs
index 97b85fc..e126bb4 100644
--- a/src/buf/buf.rs
+++ b/src/buf/buf.rs
@@ -1,4 +1,4 @@
-use super::{IntoBuf, Take, Reader, FromBuf, Chain};
+use super::{Take, Reader, Chain};
use std::{cmp, io::IoSlice, ptr, mem};
@@ -787,30 +787,6 @@ pub trait Buf {
f64::from_bits(Self::get_u64_le(self))
}
- /// Transforms a `Buf` into a concrete buffer.
- ///
- /// `collect()` can operate on any value that implements `Buf`, and turn it
- /// into the relevant concrete buffer type.
- ///
- /// # Examples
- ///
- /// Collecting a buffer and loading the contents into a `Vec<u8>`.
- ///
- /// ```
- /// use bytes::Buf;
- ///
- /// let buf = &b"hello world"[..];
- /// let vec: Vec<u8> = buf.collect();
- ///
- /// assert_eq!(vec, b"hello world");
- /// ```
- fn collect<B>(self) -> B
- where Self: Sized,
- B: FromBuf,
- {
- B::from_buf(self)
- }
-
/// Creates an adaptor which will read at most `limit` bytes from `self`.
///
/// This function returns a new instance of `Buf` which will read at most
@@ -848,16 +824,15 @@ pub trait Buf {
/// ```
/// use bytes::Buf;
///
- /// let chain = b"hello "[..].chain(&b"world"[..]);
+ /// let mut chain = b"hello "[..].chain(&b"world"[..]);
///
- /// let full: Vec<u8> = chain.collect();
- /// assert_eq!(full, b"hello world");
+ /// let full = chain.to_bytes();
+ /// assert_eq!(full.bytes(), b"hello world");
/// ```
- fn chain<U>(self, next: U) -> Chain<Self, U::Buf>
- where U: IntoBuf,
- Self: Sized,
+ fn chain<U: Buf>(self, next: U) -> Chain<Self, U>
+ where Self: Sized
{
- Chain::new(self, next.into_buf())
+ Chain::new(self, next)
}
/// Creates a "by reference" adaptor for this instance of `Buf`.
@@ -896,10 +871,10 @@ pub trait Buf {
/// # Examples
///
/// ```
- /// use bytes::{Buf, IntoBuf, Bytes};
+ /// use bytes::{Buf, Bytes};
/// use std::io::Read;
///
- /// let buf = Bytes::from("hello world").into_buf();
+ /// let buf = Bytes::from("hello world");
///
/// let mut reader = buf.reader();
/// let mut dst = [0; 1024];
@@ -912,6 +887,23 @@ pub trait Buf {
fn reader(self) -> Reader<Self> where Self: Sized {
super::reader::new(self)
}
+
+ /// Consumes remaining bytes inside self and returns new instance of `Bytes`
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use bytes::{Buf};
+ ///
+ /// let bytes = "hello world".to_bytes();
+ /// assert_eq!(&bytes[..], &b"hello world"[..]);
+ /// ```
+ fn to_bytes(&mut self) -> crate::Bytes {
+ use super::BufMut;
+ let mut ret = crate::BytesMut::with_capacity(self.remaining());
+ ret.put(self);
+ ret.freeze()
+ }
}
impl<T: Buf + ?Sized> Buf for &mut T {
@@ -967,6 +959,23 @@ impl Buf for &[u8] {
}
}
+impl Buf for &str {
+ #[inline]
+ fn remaining(&self) -> usize {
+ self.len()
+ }
+
+ #[inline]
+ fn bytes(&self) -> &[u8] {
+ self.as_bytes()
+ }
+
+ #[inline]
+ fn advance(&mut self, cnt: usize) {
+ *self = &self[cnt..];
+ }
+}
+
impl Buf for Option<[u8; 1]> {
fn remaining(&self) -> usize {
if self.is_some() {
diff --git a/src/buf/buf_mut.rs b/src/buf/buf_mut.rs
index 05ae794..7cd6be8 100644
--- a/src/buf/buf_mut.rs
+++ b/src/buf/buf_mut.rs
@@ -1,4 +1,4 @@
-use super::{IntoBuf, Writer};
+use super::{Writer};
use std::{mem, cmp, io::IoSliceMut, ptr, usize};
@@ -208,7 +208,7 @@ pub trait BufMut {
///
/// let mut buf = vec![];
///
- /// buf.put(b'h');
+ /// buf.put_u8(b'h');
/// buf.put(&b"ello"[..]);
/// buf.put(" world");
///
@@ -218,11 +218,7 @@ pub trait BufMut {
/// # Panics
///
/// Panics if `self` does not have enough capacity to contain `src`.
- fn put<T: IntoBuf>(&mut self, src: T) where Self: Sized {
- use super::Buf;
-
- let mut src = src.into_buf();
-
+ fn put<T: super::Buf>(&mut self, mut src: T) where Self: Sized {
assert!(self.remaining_mut() >= src.remaining());
while src.has_remaining() {
diff --git a/src/buf/chain.rs b/src/buf/chain.rs
index 936a086..83ece63 100644
--- a/src/buf/chain.rs
+++ b/src/buf/chain.rs
@@ -14,13 +14,13 @@ use std::io::{IoSlice, IoSliceMut};
/// # Examples
///
/// ```
-/// use bytes::{Bytes, Buf, IntoBuf};
+/// use bytes::{Bytes, Buf};
/// use bytes::buf::Chain;
///
-/// let buf = Bytes::from(&b"hello "[..]).into_buf()
+/// let mut buf = Bytes::from(&b"hello "[..])
/// .chain(Bytes::from(&b"world"[..]));
///
-/// let full: Bytes = buf.collect();
+/// let full: Bytes = buf.to_bytes();
/// assert_eq!(full[..], b"hello world"[..]);
/// ```
///
@@ -60,9 +60,9 @@ impl<T, U> Chain<T, U> {
/// # Examples
///
/// ```
- /// use bytes::{Bytes, Buf, IntoBuf};
+ /// use bytes::{Bytes, Buf};
///
- /// let buf = Bytes::from(&b"hello"[..]).into_buf()
+ /// let buf = Bytes::from(&b"hello"[..])
/// .chain(Bytes::from(&b"world"[..]));
///
/// assert_eq!(buf.first_ref()[..], b"hello"[..]);
@@ -76,14 +76,14 @@ impl<T, U> Chain<T, U> {
/// # Examples
///
/// ```
- /// use bytes::{Bytes, Buf, IntoBuf};
+ /// use bytes::{Bytes, Buf};
///
- /// let mut buf = Bytes::from(&b"hello "[..]).into_buf()
+ /// let mut buf = Bytes::from(&b"hello "[..])
/// .chain(Bytes::from(&b"world"[..]));
///
/// buf.first_mut().advance(1);
///
- /// let full: Bytes = buf.collect();
+ /// let full: Bytes = buf.to_bytes();
/// assert_eq!(full[..], b"ello world"[..]);
/// ```
pub fn first_mut(&mut self) -> &mut T {
@@ -95,9 +95,9 @@ impl<T, U> Chain<T, U> {
/// # Examples
///
/// ```
- /// use bytes::{Bytes, Buf, IntoBuf};
+ /// use bytes::{Bytes, Buf};
///
- /// let buf = Bytes::from(&b"hello"[..]).into_buf()
+ /// let buf = Bytes::from(&b"hello"[..])
/// .chain(Bytes::from(&b"world"[..]));
///
/// assert_eq!(buf.last_ref()[..], b"world"[..]);
@@ -111,14 +111,14 @@ impl<T, U> Chain<T, U> {
/// # Examples
///
/// ```
- /// use bytes::{Bytes, Buf, IntoBuf};
+ /// use bytes::{Bytes, Buf};
///
- /// let mut buf = Bytes::from(&b"hello "[..]).into_buf()
+ /// let mut buf = Bytes::from(&b"hello "[..])
/// .chain(Bytes::from(&b"world"[..]));
///
/// buf.last_mut().advance(1);
///
- /// let full: Bytes = buf.collect();
+ /// let full: Bytes = buf.to_bytes();
/// assert_eq!(full[..], b"hello orld"[..]);
/// ```
pub fn last_mut(&mut self) -> &mut U {
@@ -183,6 +183,14 @@ impl<T, U> Buf for Chain<T, U>
n += self.b.bytes_vectored(&mut dst[n..]);
n
}
+
+ fn to_bytes(&mut self) -> crate::Bytes {
+ let mut bytes: crate::BytesMut = self.a.to_bytes().try_mut()
+ .unwrap_or_else(|bytes| bytes.into());
+
+ bytes.put(&mut self.b);
+ bytes.freeze()
+ }
}
impl<T, U> BufMut for Chain<T, U>
diff --git a/src/buf/from_buf.rs b/src/buf/from_buf.rs
deleted file mode 100644
index db91a95..0000000
--- a/src/buf/from_buf.rs
+++ /dev/null
@@ -1,117 +0,0 @@
-use crate::{Buf, BufMut, IntoBuf, Bytes, BytesMut};
-
-/// Conversion from a [`Buf`]
-///
-/// Implementing `FromBuf` for a type defines how it is created from a buffer.
-/// This is common for types which represent byte storage of some kind.
-///
-/// [`FromBuf::from_buf`] is rarely called explicitly, and it is instead used
-/// through [`Buf::collect`]. See [`Buf::collect`] documentation for more examples.
-///
-/// See also [`IntoBuf`].
-///
-/// # Examples
-///
-/// Basic usage:
-///
-/// ```
-/// use bytes::{Bytes, IntoBuf};
-/// use bytes::buf::FromBuf;
-///
-/// let buf = Bytes::from(&b"hello world"[..]).into_buf();
-/// let vec = Vec::from_buf(buf);
-///
-/// assert_eq!(vec, &b"hello world"[..]);
-/// ```
-///
-/// Using [`Buf::collect`] to implicitly use `FromBuf`:
-///
-/// ```
-/// use bytes::{Buf, Bytes, IntoBuf};
-///
-/// let buf = Bytes::from(&b"hello world"[..]).into_buf();
-/// let vec: Vec<u8> = buf.collect();
-///
-/// assert_eq!(vec, &b"hello world"[..]);
-/// ```
-///
-/// Implementing `FromBuf` for your type:
-///
-/// ```
-/// use bytes::{BufMut, Bytes};
-/// use bytes::buf::{IntoBuf, FromBuf};
-///
-/// // A sample buffer, that's just a wrapper over Vec<u8>
-/// struct MyBuffer(Vec<u8>);
-///
-/// impl FromBuf for MyBuffer {
-/// fn from_buf<B>(buf: B) -> Self where B: IntoBuf {
-/// let mut v = Vec::new();
-/// v.put(buf.into_buf());
-/// MyBuffer(v)
-/// }
-/// }
-///
-/// // Now we can make a new buf
-/// let buf = Bytes::from(&b"hello world"[..]);
-///
-/// // And make a MyBuffer out of it
-/// let my_buf = MyBuffer::from_buf(buf);
-///
-/// assert_eq!(my_buf.0, &b"hello world"[..]);
-/// ```
-///
-/// [`Buf`]: trait.Buf.html
-/// [`FromBuf::from_buf`]: #method.from_buf
-/// [`Buf::collect`]: trait.Buf.html#method.collect
-/// [`IntoBuf`]: trait.IntoBuf.html
-pub trait FromBuf {
- /// Creates a value from a buffer.
- ///
- /// See the [type-level documentation](#) for more details.
- ///
- /// # Examples
- ///
- /// Basic usage:
- ///
- /// ```
- /// use bytes::{Bytes, IntoBuf};
- /// use bytes::buf::FromBuf;
- ///
- /// let buf = Bytes::from(&b"hello world"[..]).into_buf();
- /// let vec = Vec::from_buf(buf);
- ///
- /// assert_eq!(vec, &b"hello world"[..]);
- /// ```
- fn from_buf<T>(buf: T) -> Self where T: IntoBuf;
-}
-
-impl FromBuf for Vec<u8> {
- fn from_buf<T>(buf: T) -> Self
- where T: IntoBuf
- {
- let buf = buf.into_buf();
- let mut ret = Vec::with_capacity(buf.remaining());
- ret.put(buf);
- ret
- }
-}
-
-impl FromBuf for Bytes {
- fn from_buf<T>(buf: T) -> Self
- where T: IntoBuf
- {
- BytesMut::from_buf(buf).freeze()
- }
-}
-
-impl FromBuf for BytesMut {
- fn from_buf<T>(buf: T) -> Self
- where T: IntoBuf
- {
- let buf = buf.into_buf();
- let mut ret = BytesMut::with_capacity(buf.remaining());
- ret.put(buf);
- ret
- }
-}
diff --git a/src/buf/into_buf.rs b/src/buf/into_buf.rs
deleted file mode 100644
index 559021a..0000000
--- a/src/buf/into_buf.rs
+++ /dev/null
@@ -1,129 +0,0 @@
-use super::{Buf};
-use crate::BytesMut;
-
-/// Conversion into a `Buf`
-///
-/// An `IntoBuf` implementation defines how to convert a value into a `Buf`.
-/// This is common for types that represent byte storage of some kind. `IntoBuf`
-/// may be implemented directly for types or on references for those types.
-///
-/// # Examples
-///
-/// ```
-/// use bytes::{Buf, IntoBuf};
-///
-/// let bytes = b"\x00\x01hello world";
-/// let mut buf = bytes.into_buf();
-///
-/// assert_eq!(1, buf.get_u16());
-///
-/// let mut rest = [0; 11];
-/// buf.copy_to_slice(&mut rest);
-///
-/// assert_eq!(b"hello world", &rest);
-/// ```
-pub trait IntoBuf {
- /// The `Buf` type that `self` is being converted into
- type Buf: Buf;
-
- /// Creates a `Buf` from a value.
- ///
- /// # Examples
- ///
- /// ```
- /// use bytes::{Buf, IntoBuf};
- ///
- /// let bytes = b"\x00\x01hello world";
- /// let mut buf = bytes.into_buf();
- ///
- /// assert_eq!(1, buf.get_u16());
- ///
- /// let mut rest = [0; 11];
- /// buf.copy_to_slice(&mut rest);
- ///
- /// assert_eq!(b"hello world", &rest);
- /// ```
- fn into_buf(self) -> Self::Buf;
-}
-
-impl<T: Buf> IntoBuf for T {
- type Buf = Self;
-
- fn into_buf(self) -> Self {
- self
- }
-}
-
-impl<'a> IntoBuf for &'a str {
- type Buf = &'a [u8];
-
- fn into_buf(self) -> Self::Buf {
- self.as_bytes()
- }
-}
-
-impl IntoBuf for Vec<u8> {
- type Buf = BytesMut;
-
- fn into_buf(self) -> Self::Buf {
- self.into()
- }
-}
-
-impl<'a> IntoBuf for &'a Vec<u8> {
- type Buf = &'a [u8];
-
- fn into_buf(self) -> Self::Buf {
- self.as_slice()
- }
-}
-
-// Kind of annoying... but this impl is required to allow passing `&'static
-// [u8]` where for<'a> &'a T: IntoBuf is required.
-impl<'a> IntoBuf for &'a &'static [u8] {
- type Buf = &'static [u8];
-
- fn into_buf(self) -> Self::Buf {
- *self
- }
-}
-
-impl<'a> IntoBuf for &'a &'static str {
- type Buf = &'static [u8];
-
- fn into_buf(self) -> Self::Buf {
- self.as_bytes().into_buf()
- }
-}
-
-impl IntoBuf for String {
- type Buf = BytesMut;
-
- fn into_buf(self) -> Self::Buf {
- self.into_bytes().into_buf()
- }
-}
-
-impl<'a> IntoBuf for &'a String {
- type Buf = &'a [u8];
-
- fn into_buf(self) -> Self::Buf {
- self.as_bytes().into_buf()
- }
-}
-
-impl IntoBuf for u8 {
- type Buf = Option<[u8; 1]>;
-
- fn into_buf(self) -> Self::Buf {
- Some([self])
- }
-}
-
-impl IntoBuf for i8 {
- type Buf = Option<[u8; 1]>;
-
- fn into_buf(self) -> Self::Buf {
- Some([self as u8; 1])
- }
-}
diff --git a/src/buf/iter.rs b/src/buf/iter.rs
index a1bf89b..a93e359 100644
--- a/src/buf/iter.rs
+++ b/src/buf/iter.rs
@@ -9,9 +9,9 @@ use crate::Buf;
/// Basic usage:
///
/// ```
-/// use bytes::{Buf, IntoBuf, Bytes};
+/// use bytes::{Buf, Bytes};
///
-/// let buf = Bytes::from(&b"abc"[..]).into_buf();
+/// let buf = Bytes::from(&b"abc"[..]);
/// let mut iter = buf.into_iter();
///
/// assert_eq!(iter.next(), Some(b'a'));
@@ -52,9 +52,9 @@ impl<T> IntoIter<T> {
/// # Examples
///
/// ```rust
- /// use bytes::{Buf, IntoBuf, Bytes};
+ /// use bytes::{Buf, Bytes};
///
- /// let buf = Bytes::from(&b"abc"[..]).into_buf();
+ /// let buf = Bytes::from(&b"abc"[..]);
/// let mut iter = buf.into_iter();
///
/// assert_eq!(iter.next(), Some(b'a'));
@@ -73,9 +73,9 @@ impl<T> IntoIter<T> {
/// # Examples
///
/// ```rust
- /// use bytes::{Buf, IntoBuf, Bytes};
+ /// use bytes::{Buf, Bytes};
///
- /// let buf = Bytes::from(&b"abc"[..]).into_buf();
+ /// let buf = Bytes::from(&b"abc"[..]);
/// let mut iter = buf.into_iter();
///
/// assert_eq!(iter.next(), Some(b'a'));
@@ -93,7 +93,7 @@ impl<T> IntoIter<T> {
/// # Examples
///
/// ```rust
- /// use bytes::{Buf, IntoBuf, BytesMut};
+ /// use bytes::{Buf, BytesMut};
///
/// let buf = BytesMut::from(&b"abc"[..]);
/// let mut iter = buf.into_iter();
diff --git a/src/buf/mod.rs b/src/buf/mod.rs
index a127549..81e22d3 100644
--- a/src/buf/mod.rs
+++ b/src/buf/mod.rs
@@ -18,9 +18,7 @@
mod buf;
mod buf_mut;
-mod from_buf;
mod chain;
-mod into_buf;
mod iter;
mod reader;
mod take;
@@ -29,9 +27,7 @@ mod writer;
pub use self::buf::Buf;
pub use self::buf_mut::BufMut;
-pub use self::from_buf::FromBuf;
pub use self::chain::Chain;
-pub use self::into_buf::IntoBuf;
pub use self::iter::IntoIter;
pub use self::reader::Reader;
pub use self::take::Take;
diff --git a/src/buf/vec_deque.rs b/src/buf/vec_deque.rs
index 1cd650f..4464426 100644
--- a/src/buf/vec_deque.rs
+++ b/src/buf/vec_deque.rs
@@ -34,6 +34,8 @@ mod tests {
buffer.advance(6);
assert_eq!(b"world", buffer.bytes());
buffer.extend(b" piece");
- assert_eq!(b"world piece" as &[u8], &buffer.collect::<Vec<u8>>()[..]);
+ let mut out = [0; 11];
+ buffer.copy_to_slice(&mut out);
+ assert_eq!(b"world piece", &out[..]);
}
}
diff --git a/src/bytes.rs b/src/bytes.rs
index 3f8b23a..99022f0 100644
--- a/src/bytes.rs
+++ b/src/bytes.rs
@@ -1,4 +1,4 @@
-use crate::{Buf, BufMut, IntoBuf};
+use crate::{Buf, BufMut};
use crate::buf::IntoIter;
use crate::debug;
@@ -133,8 +133,8 @@ pub struct Bytes {
///
/// let mut buf = BytesMut::with_capacity(64);
///
-/// buf.put(b'h');
-/// buf.put(b'e');
+/// buf.put_u8(b'h');
+/// buf.put_u8(b'e');
/// buf.put("llo");
///
/// assert_eq!(&buf[..], b"hello");
@@ -842,7 +842,7 @@ impl Bytes {
/// # Examples
///
/// ```
- /// use bytes::{Buf, IntoBuf, Bytes};
+ /// use bytes::{Buf, Bytes};
///
/// let buf = Bytes::from(&b"abc"[..]);
/// let mut iter = buf.iter();
@@ -943,7 +943,7 @@ impl FromIterator<u8> for BytesMut {
for i in iter {
out.reserve(1);
- out.put(i);
+ out.put_u8(i);
}
out
@@ -1602,14 +1602,6 @@ impl BufMut for BytesMut {
}
}
-impl<'a> IntoBuf for &'a BytesMut {
- type Buf = &'a [u8];
-
- fn into_buf(self) -> Self::Buf {
- self.as_ref()
- }
-}
-
impl AsRef<[u8]> for BytesMut {
#[inline]
fn as_ref(&self) -> &[u8] {
diff --git a/src/lib.rs b/src/lib.rs
index 84bccb2..114de41 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -75,7 +75,6 @@ pub mod buf;
pub use crate::buf::{
Buf,
BufMut,
- IntoBuf,
};
mod bytes;
diff --git a/tests/test_buf_mut.rs b/tests/test_buf_mut.rs
index 2c9f1f2..d545d2b 100644
--- a/tests/test_buf_mut.rs
+++ b/tests/test_buf_mut.rs
@@ -32,7 +32,7 @@ fn test_vec_as_mut_buf() {
#[test]
fn test_put_u8() {
let mut buf = Vec::with_capacity(8);
- buf.put::<u8>(33);
+ buf.put_u8(33);
assert_eq!(b"\x21", &buf[..]);
}
diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs
index 70a8205..3c51ac5 100644
--- a/tests/test_bytes.rs
+++ b/tests/test_bytes.rs
@@ -302,14 +302,14 @@ fn fns_defined_for_bytes_mut() {
fn reserve_convert() {
// Inline -> Vec
let mut bytes = BytesMut::with_capacity(8);
- bytes.put("hello");
+ bytes.put("hello".as_bytes());
bytes.reserve(40);
assert_eq!(bytes.capacity(), 45);
assert_eq!(bytes, "hello");
// Inline -> Inline
let mut bytes = BytesMut::with_capacity(inline_cap());
- bytes.put("abcdefghijkl");
+ bytes.put("abcdefghijkl".as_bytes());
let a = bytes.split_to(10);
bytes.reserve(inline_cap() - 3);
@@ -336,7 +336,7 @@ fn reserve_convert() {
#[test]
fn reserve_growth() {
let mut bytes = BytesMut::with_capacity(64);
- bytes.put("hello world");
+ bytes.put("hello world".as_bytes());
let _ = bytes.split();
bytes.reserve(65);
@@ -348,7 +348,7 @@ fn reserve_allocates_at_least_original_capacity() {
let mut bytes = BytesMut::with_capacity(1024);
for i in 0..1020 {
- bytes.put(i as u8);
+ bytes.put_u8(i as u8);
}
let _other = bytes.split();
@@ -364,7 +364,7 @@ fn reserve_max_original_capacity_value() {
let mut bytes = BytesMut::with_capacity(SIZE);
for _ in 0..SIZE {
- bytes.put(0u8);
+ bytes.put_u8(0u8);
}
let _other = bytes.split();
@@ -381,7 +381,7 @@ fn reserve_max_original_capacity_value() {
fn reserve_vec_recycling() {
let mut bytes = BytesMut::from(Vec::with_capacity(16));
assert_eq!(bytes.capacity(), 16);
- bytes.put("0123456789012345");
+ bytes.put("0123456789012345".as_bytes());
bytes.advance(10);
assert_eq!(bytes.capacity(), 6);
bytes.reserve(8);
diff --git a/tests/test_chain.rs b/tests/test_chain.rs
index 6708028..2887575 100644
--- a/tests/test_chain.rs
+++ b/tests/test_chain.rs
@@ -9,7 +9,7 @@ fn collect_two_bufs() {
let a = Bytes::from(&b"hello"[..]);
let b = Bytes::from(&b"world"[..]);
- let res: Vec<u8> = a.chain(b).collect();
+ let res = a.chain(b).to_bytes();
assert_eq!(res, &b"helloworld"[..]);
}
@@ -21,8 +21,8 @@ fn writing_chained() {
{
let mut buf = Chain::new(&mut a, &mut b);
- for i in 0..128 {
- buf.put(i as u8);
+ for i in 0u8..128 {
+ buf.put_u8(i);
}
}
diff --git a/tests/test_from_buf.rs b/tests/test_from_buf.rs
deleted file mode 100644
index 5f644e1..0000000
--- a/tests/test_from_buf.rs
+++ /dev/null
@@ -1,33 +0,0 @@
-#![deny(warnings, rust_2018_idioms)]
-
-use bytes::{Buf, Bytes, BytesMut};
-
-const LONG: &'static [u8] = b"mary had a little lamb, little lamb, little lamb";
-const SHORT: &'static [u8] = b"hello world";
-
-#[test]
-fn collect_to_vec() {
- let buf: Vec<u8> = SHORT.collect();
- assert_eq!(buf, SHORT);
-
- let buf: Vec<u8> = LONG.collect();
- assert_eq!(buf, LONG);
-}
-
-#[test]
-fn collect_to_bytes() {
- let buf: Bytes = SHORT.collect();
- assert_eq!(buf, SHORT);
-
- let buf: Bytes = LONG.collect();
- assert_eq!(buf, LONG);
-}
-
-#[test]
-fn collect_to_bytes_mut() {
- let buf: BytesMut = SHORT.collect();
- assert_eq!(buf, SHORT);
-
- let buf: BytesMut = LONG.collect();
- assert_eq!(buf, LONG);
-}