[−][src]Struct bstr::FromUtf8Error
An error that may occur when converting a BString
to a String
.
This error includes the original BString
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, BString}; let bytes = BString::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 = BString::from(err.into_bstring()); assert_eq!(bytes, B(b"foo\xFFbar"));
Methods
impl FromUtf8Error
[src]
pub fn as_bstr(&self) -> &BStr
[src]
Return the original bytes as a slice that failed to convert to a
String
.
Examples
Basic usage:
use bstr::{B, BString}; let bytes = BString::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_bstr(), B(b"foo\xFFbar"));
pub fn into_bstring(self) -> BString
[src]
Consume this error and return the original byte string that failed to
convert to a String
.
Examples
Basic usage:
use bstr::{B, BString}; let bytes = BString::from_slice(b"foo\xFFbar"); let err = bytes.into_string().unwrap_err(); let original = err.into_bstring(); // 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, BString}; let bytes = BString::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 PartialEq<FromUtf8Error> for FromUtf8Error
[src]
fn eq(&self, other: &FromUtf8Error) -> bool
[src]
fn ne(&self, other: &FromUtf8Error) -> bool
[src]
impl Eq for FromUtf8Error
[src]
impl Debug for FromUtf8Error
[src]
impl Display for FromUtf8Error
[src]
impl Error for FromUtf8Error
[src]
fn description(&self) -> &str
[src]
default 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
default fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0[src]
The lower-level source of this error, if any. Read more
default fn type_id(&self) -> TypeId where
Self: 'static,
1.34.0[src]
Self: 'static,
Gets the TypeId
of self
Auto Trait Implementations
impl Send for FromUtf8Error
impl Sync for FromUtf8Error
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into 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 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> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto 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> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,