#[repr(u8)]pub enum c_void {
// some variants omitted
}
Expand description
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§
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 UnwindSafe for c_void
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
__variant1
: 0 bytes__variant2
: 0 bytes