Remove Buf impl for &str (#301)

A `&str` cannot arbitrarily advance bytes, since it will panic if
advanced to the middle of a Unicode segment.
This commit is contained in:
Sean McArthur
2019-10-16 11:28:50 -07:00
committed by Carl Lerche
parent 43ac8e5494
commit 491ebbf79a
4 changed files with 9 additions and 26 deletions
+2 -19
View File
@@ -903,9 +903,9 @@ pub trait Buf {
/// # Examples
///
/// ```
/// use bytes::{Buf};
/// use bytes::Buf;
///
/// let bytes = "hello world".to_bytes();
/// let bytes = (&b"hello world"[..]).to_bytes();
/// assert_eq!(&bytes[..], &b"hello world"[..]);
/// ```
fn to_bytes(&mut self) -> crate::Bytes {
@@ -971,23 +971,6 @@ 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() {