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