Add as_bytes()
for FromUtf8Error
.
This change allows to obtain an underlying invalid UTF-8 bytes without `FromUtf8Error` destruction. Such method may be useful for example in a library that attempts to save both valid and invalid UTF-8 strings in some struct and to be able to provide immutable access to it without destruction.
This commit is contained in:
parent
4f32e0dfb2
commit
5a09d7c3de
@ -1403,6 +1403,25 @@ impl String {
|
||||
}
|
||||
|
||||
impl FromUtf8Error {
|
||||
/// Returns a slice of [`u8`]s bytes that were attempted to convert to a `String`.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Basic usage:
|
||||
///
|
||||
/// ```
|
||||
/// // some invalid bytes, in a vector
|
||||
/// let bytes = vec![0, 159];
|
||||
///
|
||||
/// let value = String::from_utf8(bytes);
|
||||
///
|
||||
/// assert_eq!(&[0, 159], value.unwrap_err().as_bytes());
|
||||
/// ```
|
||||
#[unstable(feature = "from_utf8_error_as_bytes", issue = "40895")]
|
||||
pub fn as_bytes(&self) -> &[u8] {
|
||||
&self.bytes[..]
|
||||
}
|
||||
|
||||
/// Returns the bytes that were attempted to convert to a `String`.
|
||||
///
|
||||
/// This method is carefully constructed to avoid allocation. It will
|
||||
|
Loading…
x
Reference in New Issue
Block a user