Struct devela::_std::string::FromUtf8Error
1.0.0 · source · pub struct FromUtf8Error { /* private fields */ }Expand description
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![0, 159];
let value = String::from_utf8(bytes);
assert!(value.is_err());
assert_eq!(vec![0, 159], value.unwrap_err().into_bytes());Implementations§
source§impl FromUtf8Error
impl FromUtf8Error
sourcepub fn into_bytes(self) -> Vec<u8> ⓘ
pub 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![0, 159];
let value = String::from_utf8(bytes);
assert_eq!(vec![0, 159], value.unwrap_err().into_bytes());sourcepub fn utf8_error(&self) -> Utf8Error
pub fn utf8_error(&self) -> Utf8Error
Fetch a Utf8Error to get more details about the conversion failure.
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. See its documentation for more details
on using it.
Examples
// some invalid bytes, in a vector
let bytes = vec![0, 159];
let error = String::from_utf8(bytes).unwrap_err().utf8_error();
// the first byte is invalid here
assert_eq!(1, error.valid_up_to());Trait Implementations§
source§impl Clone for FromUtf8Error
impl Clone for FromUtf8Error
source§fn clone(&self) -> FromUtf8Error
fn clone(&self) -> FromUtf8Error
source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for FromUtf8Error
impl Debug for FromUtf8Error
source§impl Display for FromUtf8Error
impl Display for FromUtf8Error
source§impl Error for FromUtf8Error
impl Error for FromUtf8Error
source§fn description(&self) -> &str
fn description(&self) -> &str
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
source§impl PartialEq for FromUtf8Error
impl PartialEq for FromUtf8Error
source§fn eq(&self, other: &FromUtf8Error) -> bool
fn eq(&self, other: &FromUtf8Error) -> bool
self and other values to be equal, and is used
by ==.impl Eq for FromUtf8Error
impl StructuralEq for FromUtf8Error
impl StructuralPartialEq for FromUtf8Error
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§
source§impl<T> Also for T
impl<T> Also for T
source§impl<T> AnyExt for Twhere
T: Any,
impl<T> AnyExt for Twhere T: Any,
source§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
any only.self. Read moresource§fn as_any_ref(&self) -> &dyn Anywhere
Self: Sized,
fn as_any_ref(&self) -> &dyn Anywhere Self: Sized,
any only.source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere Self: Sized,
any only.source§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere T: ?Sized,
source§fn apply<F: FnOnce(Self) -> Res>(self, f: F) -> Reswhere
Self: Sized,
fn apply<F: FnOnce(Self) -> Res>(self, f: F) -> Reswhere Self: Sized,
result only.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
source§impl<T> Mem for Twhere
T: ?Sized,
impl<T> Mem for Twhere T: ?Sized,
source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
mem only.source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
mem only.true if dropping values of this type matters.source§fn mem_drop(self)where
Self: Sized,
fn mem_drop(self)where Self: Sized,
mem only.self by running its destructor.source§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where Self: Sized,
mem only.self without running its destructor.source§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere Self: Sized,
mem only.self with other, returning the previous value of self.source§fn mem_take(&mut self) -> Selfwhere
Self: Default,
fn mem_take(&mut self) -> Selfwhere Self: Default,
mem only.self with its default value, returning the previous value of self.source§fn mem_swap(&mut self, other: &mut Self)where
Self: Sized,
fn mem_swap(&mut self, other: &mut Self)where Self: Sized,
mem only.self and other without deinitializing either one.source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
source§impl<T> Size for T
impl<T> Size for T
source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
mem only.source§const BYTE_SIZE: usize = _
const BYTE_SIZE: usize = _
mem only.source§const PTR_SIZE: usize = 8usize
const PTR_SIZE: usize = 8usize
mem only.source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
mem only.