mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-24 00:00:14 +02:00
remove ext traits (#431)
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
#[cfg(feature = "std")]
|
||||||
|
use crate::buf::{reader, Reader};
|
||||||
|
use crate::buf::{take, Chain, Take};
|
||||||
|
|
||||||
use core::{cmp, mem, ptr};
|
use core::{cmp, mem, ptr};
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
@@ -807,6 +811,87 @@ pub trait Buf {
|
|||||||
ret.put(self);
|
ret.put(self);
|
||||||
ret.freeze()
|
ret.freeze()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 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
|
||||||
|
/// `limit` bytes.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::{Buf, BufMut};
|
||||||
|
///
|
||||||
|
/// let mut buf = b"hello world"[..].take(5);
|
||||||
|
/// let mut dst = vec![];
|
||||||
|
///
|
||||||
|
/// dst.put(&mut buf);
|
||||||
|
/// assert_eq!(dst, b"hello");
|
||||||
|
///
|
||||||
|
/// let mut buf = buf.into_inner();
|
||||||
|
/// dst.clear();
|
||||||
|
/// dst.put(&mut buf);
|
||||||
|
/// assert_eq!(dst, b" world");
|
||||||
|
/// ```
|
||||||
|
fn take(self, limit: usize) -> Take<Self>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
take::new(self, limit)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates an adaptor which will chain this buffer with another.
|
||||||
|
///
|
||||||
|
/// The returned `Buf` instance will first consume all bytes from `self`.
|
||||||
|
/// Afterwards the output is equivalent to the output of next.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::Buf;
|
||||||
|
///
|
||||||
|
/// let mut chain = b"hello "[..].chain(&b"world"[..]);
|
||||||
|
///
|
||||||
|
/// let full = chain.to_bytes();
|
||||||
|
/// assert_eq!(full.bytes(), b"hello world");
|
||||||
|
/// ```
|
||||||
|
fn chain<U: Buf>(self, next: U) -> Chain<Self, U>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
Chain::new(self, next)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates an adaptor which implements the `Read` trait for `self`.
|
||||||
|
///
|
||||||
|
/// This function returns a new value which implements `Read` by adapting
|
||||||
|
/// the `Read` trait functions to the `Buf` trait functions. Given that
|
||||||
|
/// `Buf` operations are infallible, none of the `Read` functions will
|
||||||
|
/// return with `Err`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::{Bytes, Buf};
|
||||||
|
/// use std::io::Read;
|
||||||
|
///
|
||||||
|
/// let buf = Bytes::from("hello world");
|
||||||
|
///
|
||||||
|
/// let mut reader = buf.reader();
|
||||||
|
/// let mut dst = [0; 1024];
|
||||||
|
///
|
||||||
|
/// let num = reader.read(&mut dst).unwrap();
|
||||||
|
///
|
||||||
|
/// assert_eq!(11, num);
|
||||||
|
/// assert_eq!(&dst[..11], &b"hello world"[..]);
|
||||||
|
/// ```
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
fn reader(self) -> Reader<Self>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
reader::new(self)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! deref_forward_buf {
|
macro_rules! deref_forward_buf {
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
use crate::buf::{limit, Chain, Limit};
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
use crate::buf::{writer, Writer};
|
||||||
|
|
||||||
use core::{
|
use core::{
|
||||||
cmp,
|
cmp,
|
||||||
mem::{self, MaybeUninit},
|
mem::{self, MaybeUninit},
|
||||||
@@ -833,6 +837,83 @@ pub trait BufMut {
|
|||||||
fn put_f64_le(&mut self, n: f64) {
|
fn put_f64_le(&mut self, n: f64) {
|
||||||
self.put_u64_le(n.to_bits());
|
self.put_u64_le(n.to_bits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Creates an adaptor which can write at most `limit` bytes to `self`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::BufMut;
|
||||||
|
///
|
||||||
|
/// let arr = &mut [0u8; 128][..];
|
||||||
|
/// assert_eq!(arr.remaining_mut(), 128);
|
||||||
|
///
|
||||||
|
/// let dst = arr.limit(10);
|
||||||
|
/// assert_eq!(dst.remaining_mut(), 10);
|
||||||
|
/// ```
|
||||||
|
fn limit(self, limit: usize) -> Limit<Self>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
limit::new(self, limit)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates an adaptor which implements the `Write` trait for `self`.
|
||||||
|
///
|
||||||
|
/// This function returns a new value which implements `Write` by adapting
|
||||||
|
/// the `Write` trait functions to the `BufMut` trait functions. Given that
|
||||||
|
/// `BufMut` operations are infallible, none of the `Write` functions will
|
||||||
|
/// return with `Err`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::BufMut;
|
||||||
|
/// use std::io::Write;
|
||||||
|
///
|
||||||
|
/// let mut buf = vec![].writer();
|
||||||
|
///
|
||||||
|
/// let num = buf.write(&b"hello world"[..]).unwrap();
|
||||||
|
/// assert_eq!(11, num);
|
||||||
|
///
|
||||||
|
/// let buf = buf.into_inner();
|
||||||
|
///
|
||||||
|
/// assert_eq!(*buf, b"hello world"[..]);
|
||||||
|
/// ```
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
fn writer(self) -> Writer<Self>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
writer::new(self)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Creates an adapter which will chain this buffer with another.
|
||||||
|
///
|
||||||
|
/// The returned `BufMut` instance will first write to all bytes from
|
||||||
|
/// `self`. Afterwards, it will write to `next`.
|
||||||
|
///
|
||||||
|
/// # Examples
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use bytes::BufMut;
|
||||||
|
///
|
||||||
|
/// let mut a = [0u8; 5];
|
||||||
|
/// let mut b = [0u8; 6];
|
||||||
|
///
|
||||||
|
/// let mut chain = (&mut a[..]).chain_mut(&mut b[..]);
|
||||||
|
///
|
||||||
|
/// chain.put_slice(b"hello world");
|
||||||
|
///
|
||||||
|
/// assert_eq!(&a[..], b"hello");
|
||||||
|
/// assert_eq!(&b[..], b" world");
|
||||||
|
/// ```
|
||||||
|
fn chain_mut<U: BufMut>(self, next: U) -> Chain<Self, U>
|
||||||
|
where
|
||||||
|
Self: Sized,
|
||||||
|
{
|
||||||
|
Chain::new(self, next)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! deref_forward_bufmut {
|
macro_rules! deref_forward_bufmut {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ use std::io::IoSlice;
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::{Bytes, Buf, buf::BufExt};
|
/// use bytes::{Bytes, Buf};
|
||||||
///
|
///
|
||||||
/// let mut buf = (&b"hello "[..])
|
/// let mut buf = (&b"hello "[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -47,7 +47,7 @@ impl<T, U> Chain<T, U> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::buf::BufExt;
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let buf = (&b"hello"[..])
|
/// let buf = (&b"hello"[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -63,7 +63,7 @@ impl<T, U> Chain<T, U> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let mut buf = (&b"hello"[..])
|
/// let mut buf = (&b"hello"[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -82,7 +82,7 @@ impl<T, U> Chain<T, U> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::buf::BufExt;
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let buf = (&b"hello"[..])
|
/// let buf = (&b"hello"[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -98,7 +98,7 @@ impl<T, U> Chain<T, U> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let mut buf = (&b"hello "[..])
|
/// let mut buf = (&b"hello "[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -117,7 +117,7 @@ impl<T, U> Chain<T, U> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// use bytes::buf::BufExt;
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let chain = (&b"hello"[..])
|
/// let chain = (&b"hello"[..])
|
||||||
/// .chain(&b"world"[..]);
|
/// .chain(&b"world"[..]);
|
||||||
@@ -1,186 +0,0 @@
|
|||||||
//! Extra utilities for `Buf` and `BufMut` types.
|
|
||||||
|
|
||||||
use super::{Buf, BufMut};
|
|
||||||
|
|
||||||
mod chain;
|
|
||||||
mod limit;
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
mod reader;
|
|
||||||
mod take;
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
mod writer;
|
|
||||||
|
|
||||||
pub use self::chain::Chain;
|
|
||||||
pub use self::limit::Limit;
|
|
||||||
pub use self::take::Take;
|
|
||||||
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
pub use self::{reader::Reader, writer::Writer};
|
|
||||||
|
|
||||||
/// Extra methods for implementations of `Buf`.
|
|
||||||
pub trait BufExt: Buf {
|
|
||||||
/// 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
|
|
||||||
/// `limit` bytes.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::{BufMut, buf::BufExt};
|
|
||||||
///
|
|
||||||
/// let mut buf = b"hello world"[..].take(5);
|
|
||||||
/// let mut dst = vec![];
|
|
||||||
///
|
|
||||||
/// dst.put(&mut buf);
|
|
||||||
/// assert_eq!(dst, b"hello");
|
|
||||||
///
|
|
||||||
/// let mut buf = buf.into_inner();
|
|
||||||
/// dst.clear();
|
|
||||||
/// dst.put(&mut buf);
|
|
||||||
/// assert_eq!(dst, b" world");
|
|
||||||
/// ```
|
|
||||||
fn take(self, limit: usize) -> Take<Self>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
take::new(self, limit)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an adaptor which will chain this buffer with another.
|
|
||||||
///
|
|
||||||
/// The returned `Buf` instance will first consume all bytes from `self`.
|
|
||||||
/// Afterwards the output is equivalent to the output of next.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
|
||||||
///
|
|
||||||
/// let mut chain = b"hello "[..].chain(&b"world"[..]);
|
|
||||||
///
|
|
||||||
/// let full = chain.to_bytes();
|
|
||||||
/// assert_eq!(full.bytes(), b"hello world");
|
|
||||||
/// ```
|
|
||||||
fn chain<U: Buf>(self, next: U) -> Chain<Self, U>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
Chain::new(self, next)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an adaptor which implements the `Read` trait for `self`.
|
|
||||||
///
|
|
||||||
/// This function returns a new value which implements `Read` by adapting
|
|
||||||
/// the `Read` trait functions to the `Buf` trait functions. Given that
|
|
||||||
/// `Buf` operations are infallible, none of the `Read` functions will
|
|
||||||
/// return with `Err`.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::{Bytes, buf::BufExt};
|
|
||||||
/// use std::io::Read;
|
|
||||||
///
|
|
||||||
/// let buf = Bytes::from("hello world");
|
|
||||||
///
|
|
||||||
/// let mut reader = buf.reader();
|
|
||||||
/// let mut dst = [0; 1024];
|
|
||||||
///
|
|
||||||
/// let num = reader.read(&mut dst).unwrap();
|
|
||||||
///
|
|
||||||
/// assert_eq!(11, num);
|
|
||||||
/// assert_eq!(&dst[..11], &b"hello world"[..]);
|
|
||||||
/// ```
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
fn reader(self) -> Reader<Self>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
reader::new(self)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<B: Buf + ?Sized> BufExt for B {}
|
|
||||||
|
|
||||||
/// Extra methods for implementations of `BufMut`.
|
|
||||||
pub trait BufMutExt: BufMut {
|
|
||||||
/// Creates an adaptor which can write at most `limit` bytes to `self`.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::{BufMut, buf::BufMutExt};
|
|
||||||
///
|
|
||||||
/// let arr = &mut [0u8; 128][..];
|
|
||||||
/// assert_eq!(arr.remaining_mut(), 128);
|
|
||||||
///
|
|
||||||
/// let dst = arr.limit(10);
|
|
||||||
/// assert_eq!(dst.remaining_mut(), 10);
|
|
||||||
/// ```
|
|
||||||
fn limit(self, limit: usize) -> Limit<Self>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
limit::new(self, limit)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an adaptor which implements the `Write` trait for `self`.
|
|
||||||
///
|
|
||||||
/// This function returns a new value which implements `Write` by adapting
|
|
||||||
/// the `Write` trait functions to the `BufMut` trait functions. Given that
|
|
||||||
/// `BufMut` operations are infallible, none of the `Write` functions will
|
|
||||||
/// return with `Err`.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::buf::BufMutExt;
|
|
||||||
/// use std::io::Write;
|
|
||||||
///
|
|
||||||
/// let mut buf = vec![].writer();
|
|
||||||
///
|
|
||||||
/// let num = buf.write(&b"hello world"[..]).unwrap();
|
|
||||||
/// assert_eq!(11, num);
|
|
||||||
///
|
|
||||||
/// let buf = buf.into_inner();
|
|
||||||
///
|
|
||||||
/// assert_eq!(*buf, b"hello world"[..]);
|
|
||||||
/// ```
|
|
||||||
#[cfg(feature = "std")]
|
|
||||||
fn writer(self) -> Writer<Self>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
writer::new(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates an adapter which will chain this buffer with another.
|
|
||||||
///
|
|
||||||
/// The returned `BufMut` instance will first write to all bytes from
|
|
||||||
/// `self`. Afterwards, it will write to `next`.
|
|
||||||
///
|
|
||||||
/// # Examples
|
|
||||||
///
|
|
||||||
/// ```
|
|
||||||
/// use bytes::{BufMut, buf::BufMutExt};
|
|
||||||
///
|
|
||||||
/// let mut a = [0u8; 5];
|
|
||||||
/// let mut b = [0u8; 6];
|
|
||||||
///
|
|
||||||
/// let mut chain = (&mut a[..]).chain_mut(&mut b[..]);
|
|
||||||
///
|
|
||||||
/// chain.put_slice(b"hello world");
|
|
||||||
///
|
|
||||||
/// assert_eq!(&a[..], b"hello");
|
|
||||||
/// assert_eq!(&b[..], b" world");
|
|
||||||
/// ```
|
|
||||||
fn chain_mut<U: BufMut>(self, next: U) -> Chain<Self, U>
|
|
||||||
where
|
|
||||||
Self: Sized,
|
|
||||||
{
|
|
||||||
Chain::new(self, next)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<B: BufMut + ?Sized> BufMutExt for B {}
|
|
||||||
+13
-2
@@ -18,11 +18,22 @@
|
|||||||
|
|
||||||
mod buf_impl;
|
mod buf_impl;
|
||||||
mod buf_mut;
|
mod buf_mut;
|
||||||
pub mod ext;
|
mod chain;
|
||||||
mod iter;
|
mod iter;
|
||||||
|
mod limit;
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
mod reader;
|
||||||
|
mod take;
|
||||||
mod vec_deque;
|
mod vec_deque;
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
mod writer;
|
||||||
|
|
||||||
pub use self::buf_impl::Buf;
|
pub use self::buf_impl::Buf;
|
||||||
pub use self::buf_mut::BufMut;
|
pub use self::buf_mut::BufMut;
|
||||||
pub use self::ext::{BufExt, BufMutExt};
|
pub use self::chain::Chain;
|
||||||
pub use self::iter::IntoIter;
|
pub use self::iter::IntoIter;
|
||||||
|
pub use self::limit::Limit;
|
||||||
|
pub use self::take::Take;
|
||||||
|
|
||||||
|
#[cfg(feature = "std")]
|
||||||
|
pub use self::{reader::Reader, writer::Writer};
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ impl<B: Buf> Reader<B> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::buf::BufExt;
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let buf = b"hello world".reader();
|
/// let buf = b"hello world".reader();
|
||||||
///
|
///
|
||||||
@@ -46,7 +46,7 @@ impl<B: Buf> Reader<B> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
/// use bytes::Buf;
|
||||||
/// use std::io;
|
/// use std::io;
|
||||||
///
|
///
|
||||||
/// let mut buf = b"hello world".reader();
|
/// let mut buf = b"hello world".reader();
|
||||||
@@ -22,7 +22,7 @@ impl<T> Take<T> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::buf::{BufMut, BufExt};
|
/// use bytes::{Buf, BufMut};
|
||||||
///
|
///
|
||||||
/// let mut buf = b"hello world".take(2);
|
/// let mut buf = b"hello world".take(2);
|
||||||
/// let mut dst = vec![];
|
/// let mut dst = vec![];
|
||||||
@@ -47,7 +47,7 @@ impl<T> Take<T> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let buf = b"hello world".take(2);
|
/// let buf = b"hello world".take(2);
|
||||||
///
|
///
|
||||||
@@ -64,7 +64,7 @@ impl<T> Take<T> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::{Buf, BufMut, buf::BufExt};
|
/// use bytes::{Buf, BufMut};
|
||||||
///
|
///
|
||||||
/// let mut buf = b"hello world".take(2);
|
/// let mut buf = b"hello world".take(2);
|
||||||
/// let mut dst = vec![];
|
/// let mut dst = vec![];
|
||||||
@@ -88,7 +88,7 @@ impl<T> Take<T> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::{Buf, buf::BufExt};
|
/// use bytes::Buf;
|
||||||
///
|
///
|
||||||
/// let mut buf = b"hello world".take(2);
|
/// let mut buf = b"hello world".take(2);
|
||||||
///
|
///
|
||||||
@@ -110,7 +110,7 @@ impl<T> Take<T> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::{BufMut, buf::BufExt};
|
/// use bytes::{Buf, BufMut};
|
||||||
///
|
///
|
||||||
/// let mut buf = b"hello world".take(2);
|
/// let mut buf = b"hello world".take(2);
|
||||||
/// let mut dst = vec![];
|
/// let mut dst = vec![];
|
||||||
@@ -24,7 +24,7 @@ impl<B: BufMut> Writer<B> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::buf::BufMutExt;
|
/// use bytes::BufMut;
|
||||||
///
|
///
|
||||||
/// let buf = Vec::with_capacity(1024).writer();
|
/// let buf = Vec::with_capacity(1024).writer();
|
||||||
///
|
///
|
||||||
@@ -41,7 +41,7 @@ impl<B: BufMut> Writer<B> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::buf::BufMutExt;
|
/// use bytes::BufMut;
|
||||||
///
|
///
|
||||||
/// let mut buf = vec![].writer();
|
/// let mut buf = vec![].writer();
|
||||||
///
|
///
|
||||||
@@ -58,7 +58,7 @@ impl<B: BufMut> Writer<B> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use bytes::buf::BufMutExt;
|
/// use bytes::BufMut;
|
||||||
/// use std::io;
|
/// use std::io;
|
||||||
///
|
///
|
||||||
/// let mut buf = vec![].writer();
|
/// let mut buf = vec![].writer();
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
#![warn(rust_2018_idioms)]
|
#![warn(rust_2018_idioms)]
|
||||||
|
|
||||||
use bytes::buf::{BufExt, BufMutExt};
|
|
||||||
use bytes::{Buf, BufMut, Bytes};
|
use bytes::{Buf, BufMut, Bytes};
|
||||||
#[cfg(feature = "std")]
|
#[cfg(feature = "std")]
|
||||||
use std::io::IoSlice;
|
use std::io::IoSlice;
|
||||||
|
|||||||
@@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
use std::io::{BufRead, Read};
|
use std::io::{BufRead, Read};
|
||||||
|
|
||||||
use bytes::buf::BufExt;
|
use bytes::Buf;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn read() {
|
fn read() {
|
||||||
let buf1 = &b"hello "[..];
|
let buf1 = &b"hello "[..];
|
||||||
let buf2 = &b"world"[..];
|
let buf2 = &b"world"[..];
|
||||||
let buf = BufExt::chain(buf1, buf2); // Disambiguate with Read::chain
|
let buf = Buf::chain(buf1, buf2); // Disambiguate with Read::chain
|
||||||
let mut buffer = Vec::new();
|
let mut buffer = Vec::new();
|
||||||
buf.reader().read_to_end(&mut buffer).unwrap();
|
buf.reader().read_to_end(&mut buffer).unwrap();
|
||||||
assert_eq!(b"hello world", &buffer[..]);
|
assert_eq!(b"hello world", &buffer[..]);
|
||||||
@@ -19,7 +19,7 @@ fn read() {
|
|||||||
fn buf_read() {
|
fn buf_read() {
|
||||||
let buf1 = &b"hell"[..];
|
let buf1 = &b"hell"[..];
|
||||||
let buf2 = &b"o\nworld"[..];
|
let buf2 = &b"o\nworld"[..];
|
||||||
let mut reader = BufExt::chain(buf1, buf2).reader();
|
let mut reader = Buf::chain(buf1, buf2).reader();
|
||||||
let mut line = String::new();
|
let mut line = String::new();
|
||||||
reader.read_line(&mut line).unwrap();
|
reader.read_line(&mut line).unwrap();
|
||||||
assert_eq!("hello\n", &line);
|
assert_eq!("hello\n", &line);
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#![warn(rust_2018_idioms)]
|
#![warn(rust_2018_idioms)]
|
||||||
|
|
||||||
use bytes::buf::{Buf, BufExt};
|
use bytes::buf::Buf;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn long_take() {
|
fn long_take() {
|
||||||
|
|||||||
Reference in New Issue
Block a user