On this page
Struct std::ffi::NulError
pub struct NulError(/* private fields */);
An error indicating that an interior nul byte was found.
While Rust strings may contain nul bytes in the middle, C strings can’t, as that byte would effectively truncate the string.
This error is created by the new
method on CString
. See its documentation for more.
Examples
use std::ffi::{CString, NulError};
let _: NulError = CString::new(b"f\0oo".to_vec()).unwrap_err();
Implementations
impl NulError
pub fn nul_position(&self) -> usize
Returns the position of the nul byte in the slice that caused CString::new
to fail.
Examples
use std::ffi::CString;
let nul_error = CString::new("foo\0bar").unwrap_err();
assert_eq!(nul_error.nul_position(), 3);
let nul_error = CString::new("foo bar\0").unwrap_err();
assert_eq!(nul_error.nul_position(), 7);
pub fn into_vec(self) -> Vec<u8> ⓘ
Consumes this error, returning the underlying vector of bytes which generated the error in the first place.
Examples
use std::ffi::CString;
let nul_error = CString::new("foo\0bar").unwrap_err();
assert_eq!(nul_error.into_vec(), b"foo\0bar");
Trait Implementations
impl Clone for NulError
fn clone(&self) -> NulError
fn clone_from(&mut self, source: &Self)
source
. Read more
impl Debug for NulError
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Display for NulError
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Error for NulError
fn description(&self) -> &str
fn source(&self) -> Option<&(dyn Error + 'static)>
fn cause(&self) -> Option<&dyn Error>
fn provide<'a>(&'a self, request: &mut Request<'a>)
error_generic_member_access
#99301)
impl From<NulError> for Error
fn from(_: NulError) -> Error
Converts a alloc::ffi::NulError
into a Error
.
impl PartialEq for NulError
fn eq(&self, other: &NulError) -> bool
self
and other
values to be equal, and is used by ==
.
fn ne(&self, other: &Rhs) -> bool
!=
. The default implementation is almost always sufficient, and should not be overridden without very good reason.
impl Eq for NulError
impl StructuralEq for NulError
impl StructuralPartialEq for NulError
Auto Trait Implementations
impl RefUnwindSafe for NulError
impl Send for NulError
impl Sync for NulError
impl Unpin for NulError
impl UnwindSafe for NulError
Blanket Implementations
impl<T> Any for T
where
T: 'static + ?Sized,
impl<T> Borrow<T> for T
where
T: ?Sized,
impl<T> BorrowMut<T> for T
where
T: ?Sized,
impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for T
where
U: From<T>,
fn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of From<T> for U
chooses to do.
impl<T> ToOwned for T
where
T: Clone,
type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T> ToString for T
where
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T
where
U: Into<T>,
type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for T
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/ffi/struct.NulError.html