mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Omit some more From
impls to avoid inference failures
This commit is contained in:
parent
76780fa10e
commit
22a4ec39fb
@ -43,21 +43,6 @@ use crate::vec::Vec;
|
||||
///
|
||||
/// The `Debug` and `Display` implementations for `ByteString` are the same as those for `ByteStr`,
|
||||
/// showing invalid UTF-8 as hex escapes or the Unicode replacement character, respectively.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// You can create a new `ByteString` from a `Vec<u8>` directly, or via a `From` impl from various
|
||||
/// string types:
|
||||
///
|
||||
/// ```
|
||||
/// # #![feature(bstr)]
|
||||
/// # use std::bstr::ByteString;
|
||||
/// let s1 = ByteString(vec![b'H', b'e', b'l', b'l', b'o']);
|
||||
/// let s2 = ByteString::from("Hello");
|
||||
/// let s3 = ByteString::from(b"Hello");
|
||||
/// assert_eq!(s1, s2);
|
||||
/// assert_eq!(s2, s3);
|
||||
/// ```
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
#[repr(transparent)]
|
||||
#[derive(Clone)]
|
||||
@ -193,40 +178,42 @@ impl Default for ByteString {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a, const N: usize> From<&'a [u8; N]> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: &'a [u8; N]) -> Self {
|
||||
ByteString(s.as_slice().to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<const N: usize> From<[u8; N]> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: [u8; N]) -> Self {
|
||||
ByteString(s.as_slice().to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a> From<&'a [u8]> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: &'a [u8]) -> Self {
|
||||
ByteString(s.to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl From<Vec<u8>> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: Vec<u8>) -> Self {
|
||||
ByteString(s)
|
||||
}
|
||||
}
|
||||
// Omitted due to inference failures
|
||||
//
|
||||
// #[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a, const N: usize> From<&'a [u8; N]> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: &'a [u8; N]) -> Self {
|
||||
// ByteString(s.as_slice().to_vec())
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<const N: usize> From<[u8; N]> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: [u8; N]) -> Self {
|
||||
// ByteString(s.as_slice().to_vec())
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a> From<&'a [u8]> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: &'a [u8]) -> Self {
|
||||
// ByteString(s.to_vec())
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl From<Vec<u8>> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: Vec<u8>) -> Self {
|
||||
// ByteString(s)
|
||||
// }
|
||||
// }
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl From<ByteString> for Vec<u8> {
|
||||
@ -236,22 +223,24 @@ impl From<ByteString> for Vec<u8> {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a> From<&'a str> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: &'a str) -> Self {
|
||||
ByteString(s.as_bytes().to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl From<String> for ByteString {
|
||||
#[inline]
|
||||
fn from(s: String) -> Self {
|
||||
ByteString(s.into_bytes())
|
||||
}
|
||||
}
|
||||
// Omitted due to inference failures
|
||||
//
|
||||
// #[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a> From<&'a str> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: &'a str) -> Self {
|
||||
// ByteString(s.as_bytes().to_vec())
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl From<String> for ByteString {
|
||||
// #[inline]
|
||||
// fn from(s: String) -> Self {
|
||||
// ByteString(s.into_bytes())
|
||||
// }
|
||||
// }
|
||||
|
||||
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/135100
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
|
@ -246,21 +246,23 @@ impl<'a> Default for &'a mut ByteStr {
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a, const N: usize> From<&'a [u8; N]> for &'a ByteStr {
|
||||
#[inline]
|
||||
fn from(s: &'a [u8; N]) -> Self {
|
||||
ByteStr::from_bytes(s)
|
||||
}
|
||||
}
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a> From<&'a [u8]> for &'a ByteStr {
|
||||
#[inline]
|
||||
fn from(s: &'a [u8]) -> Self {
|
||||
ByteStr::from_bytes(s)
|
||||
}
|
||||
}
|
||||
// Omitted due to inference failures
|
||||
//
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a, const N: usize> From<&'a [u8; N]> for &'a ByteStr {
|
||||
// #[inline]
|
||||
// fn from(s: &'a [u8; N]) -> Self {
|
||||
// ByteStr::from_bytes(s)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a> From<&'a [u8]> for &'a ByteStr {
|
||||
// #[inline]
|
||||
// fn from(s: &'a [u8]) -> Self {
|
||||
// ByteStr::from_bytes(s)
|
||||
// }
|
||||
// }
|
||||
|
||||
// Omitted due to slice-from-array-issue-113238:
|
||||
//
|
||||
@ -280,13 +282,15 @@ impl<'a> From<&'a [u8]> for &'a ByteStr {
|
||||
// }
|
||||
// }
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl<'a> From<&'a str> for &'a ByteStr {
|
||||
#[inline]
|
||||
fn from(s: &'a str) -> Self {
|
||||
ByteStr::from_bytes(s.as_bytes())
|
||||
}
|
||||
}
|
||||
// Omitted due to inference failures
|
||||
//
|
||||
// #[unstable(feature = "bstr", issue = "134915")]
|
||||
// impl<'a> From<&'a str> for &'a ByteStr {
|
||||
// #[inline]
|
||||
// fn from(s: &'a str) -> Self {
|
||||
// ByteStr::from_bytes(s.as_bytes())
|
||||
// }
|
||||
// }
|
||||
|
||||
#[unstable(feature = "bstr", issue = "134915")]
|
||||
impl hash::Hash for ByteStr {
|
||||
|
Loading…
Reference in New Issue
Block a user