Struct FromUtf8Error
pub struct FromUtf8Error { pub(in ::string) bytes: Vec<u8>, pub(in ::string) error: Utf8Error }
A possible error value when converting a String from a UTF-8 byte vector.
This type is the error type for the from_utf8 method on String. It
is designed in such a way to carefully avoid reallocations: the
into_bytes method will give back the byte vector that was used in the
conversion attempt.
The Utf8Error type provided by std::str represents an error that may
occur when converting a slice of u8s to a &str. In this sense, it's
an analogue to FromUtf8Error, and you can get one from a FromUtf8Error
through the utf8_error method.
Examples
// some invalid bytes, in a vector
let bytes = vec!;
let value = Stringfrom_utf8;
assert!;
assert_eq!;
Fields
bytes: Vec<u8>error: Utf8Error
Implementations
impl FromUtf8Error
fn as_bytes(&self) -> &[u8]Returns a slice of
u8s bytes that were attempted to convert to aString.Examples
// some invalid bytes, in a vector let bytes = vec!; let value = Stringfrom_utf8; assert_eq!;fn into_utf8_lossy(self) -> StringConverts the bytes into a
Stringlossily, substituting invalid UTF-8 sequences with replacement characters.See
String::from_utf8_lossyfor more details on replacement of invalid sequences, andString::from_utf8_lossy_ownedfor theStringfunction which corresponds to this function.This is useful in conjunction with
String::from_utf8when you need to branch on whether the bytes are valid UTF-8, but still want to recover a lossily convertedStringin the error case. UseString::from_utf8_lossy_ownedif you always need a lossily convertedString.Since the original
String::from_utf8error records where validation stopped, this method does not need to re-check the already valid prefix of the byte sequence.Examples
// some invalid bytes let input: = b"Hello \xF0\x90\x80World".into; let = match Stringfrom_utf8 ; assert_eq!; assert!;fn into_bytes(self) -> Vec<u8>Returns the bytes that were attempted to convert to a
String.This method is carefully constructed to avoid allocation. It will consume the error, moving out the bytes, so that a copy of the bytes does not need to be made.
Examples
// some invalid bytes, in a vector let bytes = vec!; let value = Stringfrom_utf8; assert_eq!;fn utf8_error(&self) -> Utf8ErrorFetch a
Utf8Errorto get more details about the conversion failure.The
Utf8Errortype provided bystd::strrepresents an error that may occur when converting a slice ofu8s to a&str. In this sense, it's an analogue toFromUtf8Error. See its documentation for more details on using it.Examples
// some invalid bytes, in a vector let bytes = vec!; let error = Stringfrom_utf8.unwrap_err.utf8_error; // the first byte is invalid here assert_eq!;
Trait Implementations
impl Clone for FromUtf8Error
fn clone(&self) -> FromUtf8Error
impl Debug for FromUtf8Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Display for FromUtf8Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for FromUtf8Error
fn assert_fields_are_eq(&self)
impl Error for FromUtf8Error
impl PartialEq for FromUtf8Error
fn eq(&self, other: &FromUtf8Error) -> bool
impl StructuralPartialEq for FromUtf8Error
Auto Trait Implementations
impl Freeze for FromUtf8Error
impl RefUnwindSafe for FromUtf8Error
impl Send for FromUtf8Error
impl Sync for FromUtf8Error
impl Unpin for FromUtf8Error
impl UnsafeUnpin for FromUtf8Error
impl UnwindSafe for FromUtf8Error
Blanket Implementations
impl<T> Any for FromUtf8Error
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for FromUtf8Error
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for FromUtf8Error
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for FromUtf8Error
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for FromUtf8Error
fn from(t: T) -> TReturns the argument unchanged.
impl<T> SizeHint for FromUtf8Error
where
T: ?Sized,
fn lower_bound(&self) -> usizefn upper_bound(&self) -> Option<usize>
impl<T> SizedTypeProperties for FromUtf8Error
impl<T> ToOwned for FromUtf8Error
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T> ToString for FromUtf8Error
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for FromUtf8Error
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for FromUtf8Error
where
U: Into<T>,
type Error = Infallible;fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for FromUtf8Error
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>