pub struct IntoStringError<const N: usize, LenT = usize>where
LenT: LenType,{ /* private fields */ }Expand description
An error indicating invalid UTF-8 when converting a CString into a String.
This struct is created by CString::into_string().
Equivalent of std::ffi::IntoStringError.
Call Self::into_cstring to regain ownership of the CString.
§Examples
use heapless::CString;
use heapless::c_string::IntoStringError;
// the byte slice contains invalid UTF-8
let hello_world = CString::<16>::from_bytes_with_nul(b"Hello \xF0\x90\x80World\0").unwrap();
let hello_world_clone = hello_world.clone();
let err: IntoStringError<16> = hello_world.into_string().unwrap_err();
assert_eq!(err.utf8_error().valid_up_to(), 6);
assert_eq!(err.utf8_error().error_len(), Some(3));
assert_eq!(err.into_cstring(), hello_world_clone);Implementations§
Source§impl<const N: usize, LenT: LenType> IntoStringError<N, LenT>
impl<const N: usize, LenT: LenType> IntoStringError<N, LenT>
Sourcepub fn into_cstring(self) -> CString<N, LenT>
pub fn into_cstring(self) -> CString<N, LenT>
Consumes this error, returning original CString which generated the error.
Sourcepub fn utf8_error(&self) -> Utf8Error
pub fn utf8_error(&self) -> Utf8Error
Access the underlying UTF-8 error that was the cause of this error.
Trait Implementations§
Source§impl<const N: usize, LenT> Clone for IntoStringError<N, LenT>
impl<const N: usize, LenT> Clone for IntoStringError<N, LenT>
Source§fn clone(&self) -> IntoStringError<N, LenT>
fn clone(&self) -> IntoStringError<N, LenT>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const N: usize, LenT> Debug for IntoStringError<N, LenT>
impl<const N: usize, LenT> Debug for IntoStringError<N, LenT>
Source§impl<const N: usize, LenT: LenType> Error for IntoStringError<N, LenT>
impl<const N: usize, LenT: LenType> Error for IntoStringError<N, LenT>
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl<const N: usize, LenT> PartialEq for IntoStringError<N, LenT>
impl<const N: usize, LenT> PartialEq for IntoStringError<N, LenT>
impl<const N: usize, LenT> StructuralPartialEq for IntoStringError<N, LenT>where
LenT: LenType,
Auto Trait Implementations§
impl<const N: usize, LenT> Freeze for IntoStringError<N, LenT>where
LenT: Freeze,
impl<const N: usize, LenT> RefUnwindSafe for IntoStringError<N, LenT>where
LenT: RefUnwindSafe,
impl<const N: usize, LenT> Send for IntoStringError<N, LenT>
impl<const N: usize, LenT> Sync for IntoStringError<N, LenT>
impl<const N: usize, LenT> Unpin for IntoStringError<N, LenT>where
LenT: Unpin,
impl<const N: usize, LenT> UnsafeUnpin for IntoStringError<N, LenT>where
LenT: UnsafeUnpin,
impl<const N: usize, LenT> UnwindSafe for IntoStringError<N, LenT>where
LenT: UnwindSafe,
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