Enum c_void

#[repr(u8)]
pub enum c_void

Equivalent to C's void type when used as a [pointer].

In essence, *const c_void is equivalent to C's const void* and *mut c_void is equivalent to C's void*. That said, this is not the same as C's void return type, which is Rust's () type.

To model pointers to opaque types in FFI, until extern type is stabilized, it is recommended to use a newtype wrapper around an empty byte array. See the Nomicon for details.

One could use std::os::raw::c_void if they want to support old Rust compilers down to 1.1.0. After Rust 1.30.0, it was re-exported by this definition. For more information, please read RFC 2521.

Variants

__variant1
__variant2

Trait Implementations

impl Debug for c_void

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

Auto Trait Implementations

impl Freeze for c_void

impl RefUnwindSafe for c_void

impl Send for c_void

impl Sync for c_void

impl Unpin for c_void

impl UnsafeUnpin for c_void

impl UnwindSafe for c_void

Blanket Implementations

impl<T> Any for c_void where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for c_void where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for c_void where T: ?Sized,

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

impl<T> From<T> for c_void

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> SizeHint for c_void where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for c_void

impl<T, U> Into<U> for c_void 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, U> TryFrom<U> for c_void where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for c_void where U: TryFrom<T>,

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