[][src]Struct bstr::FromUtf8Error

pub struct FromUtf8Error { /* fields omitted */ }

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]

impl Display for FromUtf8Error[src]

impl Debug for FromUtf8Error[src]

impl Error for FromUtf8Error[src]

fn cause(&self) -> Option<&dyn Error>1.0.0[src]

Deprecated since 1.33.0:

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]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]