Struct bstr::FromUtf8Error
source · pub struct FromUtf8Error { /* private fields */ }
Expand description
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§
source§impl FromUtf8Error
impl FromUtf8Error
sourcepub fn as_bytes(&self) -> &[u8] ⓘ
pub fn as_bytes(&self) -> &[u8] ⓘ
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"));
sourcepub fn into_vec(self) -> Vec<u8> ⓘ
pub fn into_vec(self) -> Vec<u8> ⓘ
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"));
sourcepub fn utf8_error(&self) -> &Utf8Error
pub fn utf8_error(&self) -> &Utf8Error
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§
source§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
👎Deprecated since 1.42.0: use the Display impl or to_string()
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
source§impl PartialEq for FromUtf8Error
impl PartialEq for FromUtf8Error
source§fn eq(&self, other: &FromUtf8Error) -> bool
fn eq(&self, other: &FromUtf8Error) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for FromUtf8Error
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 UnwindSafe for FromUtf8Error
Blanket Implementations§
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
Mutably borrows from an owned value. Read more