Struct bstr::FromUtf8Error [−][src]
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"));
Implementations
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 Debug for FromUtf8Error
[src]
impl Display for FromUtf8Error
[src]
impl Eq for FromUtf8Error
[src]
impl Error for FromUtf8Error
[src]
fn description(&self) -> &str
[src]
pub fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0[src]
pub fn backtrace(&self) -> Option<&Backtrace>
[src]
pub fn cause(&self) -> Option<&dyn Error>
1.0.0[src]
impl PartialEq<FromUtf8Error> for FromUtf8Error
[src]
fn eq(&self, other: &FromUtf8Error) -> bool
[src]
fn ne(&self, other: &FromUtf8Error) -> bool
[src]
impl StructuralEq for FromUtf8Error
[src]
impl StructuralPartialEq for FromUtf8Error
[src]
Auto Trait Implementations
impl RefUnwindSafe for FromUtf8Error
impl Send for FromUtf8Error
impl Sync for FromUtf8Error
impl Unpin for FromUtf8Error
impl UnwindSafe for FromUtf8Error
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
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.
pub 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>,