On this page
Enum std::ffi::c_void
#[repr(u8)]pub enum c_void {
// some variants omitted
}
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 compiler down to 1.1.0. After Rust 1.30.0, it was re-exported by this definition. For more information, please read RFC 2521.
Trait Implementations
impl Debug for c_void
Auto Trait Implementations
impl RefUnwindSafe for c_void
impl Send for c_void
impl Sync for c_void
impl Unpin for c_void
impl UnwindSafe for c_void
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, 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/enum.c_void.html