Struct FromVecWithNulError

struct FromVecWithNulError { ... }

An error indicating that a nul byte was not in the expected position.

The vector used to create a CString must have one and only one nul byte, positioned at the end.

This error is created by the CString::from_vec_with_nul method. See its documentation for more.

Examples

use std::ffi::{CString, FromVecWithNulError};

let _: FromVecWithNulError = CString::from_vec_with_nul(b"f\0oo".to_vec()).unwrap_err();

Implementations

impl FromVecWithNulError

fn as_bytes(self: &Self) -> &[u8]

Returns a slice of u8s bytes that were attempted to convert to a CString.

Examples

Basic usage:

use std::ffi::CString;

// Some invalid bytes in a vector
let bytes = b"f\0oo".to_vec();

let value = CString::from_vec_with_nul(bytes.clone());

assert_eq!(&bytes[..], value.unwrap_err().as_bytes());
fn into_bytes(self: Self) -> Vec<u8>

Returns the bytes that were attempted to convert to a CString.

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

Basic usage:

use std::ffi::CString;

// Some invalid bytes in a vector
let bytes = b"f\0oo".to_vec();

let value = CString::from_vec_with_nul(bytes.clone());

assert_eq!(bytes, value.unwrap_err().into_bytes());

impl Clone for FromVecWithNulError

fn clone(self: &Self) -> FromVecWithNulError

impl Debug for FromVecWithNulError

fn fmt(self: &Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result

impl Display for FromVecWithNulError

fn fmt(self: &Self, f: &mut fmt::Formatter<'_>) -> fmt::Result

impl Eq for FromVecWithNulError

impl Error for FromVecWithNulError

impl Freeze for FromVecWithNulError

impl PartialEq for FromVecWithNulError

fn eq(self: &Self, other: &FromVecWithNulError) -> bool

impl RefUnwindSafe for FromVecWithNulError

impl Send for FromVecWithNulError

impl StructuralPartialEq for FromVecWithNulError

impl Sync for FromVecWithNulError

impl Unpin for FromVecWithNulError

impl UnwindSafe for FromVecWithNulError

impl<T> Any for FromVecWithNulError

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for FromVecWithNulError

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for FromVecWithNulError

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for FromVecWithNulError

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for FromVecWithNulError

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for FromVecWithNulError

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T> ToString for FromVecWithNulError

fn to_string(self: &Self) -> String

impl<T, U> Into for FromVecWithNulError

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for FromVecWithNulError

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for FromVecWithNulError

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>