[−][src]Struct bstr::FromUtf8Error
An error that may occur when converting a Vec<u8>
to a String
.
This error includes the original Vec<u8>
that failed to convert to a
String
. This permits callers to recover the allocation used even if it
it not valid UTF-8.
Examples
Basic usage:
use bstr::{B, ByteVec}; let bytes = Vec::from_slice(b"foo\xFFbar"); let err = bytes.into_string().unwrap_err(); assert_eq!(err.utf8_error().valid_up_to(), 3); assert_eq!(err.utf8_error().error_len(), Some(1)); // At no point in this example is an allocation performed. let bytes = Vec::from(err.into_vec()); assert_eq!(bytes, B(b"foo\xFFbar"));
Methods
impl FromUtf8Error
[src]
pub fn as_bytes(&self) -> &[u8]
[src]
Return the original bytes as a slice that failed to convert to a
String
.
Examples
Basic usage:
use bstr::{B, ByteVec}; let bytes = Vec::from_slice(b"foo\xFFbar"); let err = bytes.into_string().unwrap_err(); // At no point in this example is an allocation performed. assert_eq!(err.as_bytes(), B(b"foo\xFFbar"));
pub fn into_vec(self) -> Vec<u8>
[src]
Consume this error and return the original byte string that failed to
convert to a String
.
Examples
Basic usage:
use bstr::{B, ByteVec}; let bytes = Vec::from_slice(b"foo\xFFbar"); let err = bytes.into_string().unwrap_err(); let original = err.into_vec(); // At no point in this example is an allocation performed. assert_eq!(original, B(b"foo\xFFbar"));
pub fn utf8_error(&self) -> &Utf8Error
[src]
Return the underlying UTF-8 error that occurred. This error provides information on the nature and location of the invalid UTF-8 detected.
Examples
Basic usage:
use bstr::{B, ByteVec}; let bytes = Vec::from_slice(b"foo\xFFbar"); let err = bytes.into_string().unwrap_err(); assert_eq!(err.utf8_error().valid_up_to(), 3); assert_eq!(err.utf8_error().error_len(), Some(1));
Trait Implementations
impl Eq for FromUtf8Error
[src]
impl PartialEq<FromUtf8Error> for FromUtf8Error
[src]
fn eq(&self, other: &FromUtf8Error) -> bool
[src]
fn ne(&self, other: &FromUtf8Error) -> bool
[src]
impl Display for FromUtf8Error
[src]
impl Debug for FromUtf8Error
[src]
impl Error for FromUtf8Error
[src]
fn description(&self) -> &str
[src]
fn cause(&self) -> Option<&dyn Error>
1.0.0[src]
replaced by Error::source, which can support downcasting
The lower-level cause of this error, if any. Read more
fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0[src]
The lower-level source of this error, if any. Read more
Auto Trait Implementations
impl Unpin for FromUtf8Error
impl Sync for FromUtf8Error
impl Send for FromUtf8Error
impl UnwindSafe for FromUtf8Error
impl RefUnwindSafe for FromUtf8Error
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,