Trait rdkafka::util::IntoOpaque

source ·
pub trait IntoOpaque:
    Send
    + Sync
    + Sized {
    // Required methods
    fn into_ptr(self) -> *mut c_void;
    unsafe fn from_ptr(_: *mut c_void) -> Self;
}
Expand description

Converts Rust data to and from raw pointers.

This conversion is used to pass opaque objects to the C library and vice versa.

Required Methods§

source

fn into_ptr(self) -> *mut c_void

Converts the object into a raw pointer.

source

unsafe fn from_ptr(_: *mut c_void) -> Self

Converts the raw pointer back to the original Rust object.

§Safety

The pointer must be created with into_ptr.

Care must be taken to not call more than once if it would result in an aliasing violation (e.g. Box).

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl IntoOpaque for ()

source§

fn into_ptr(self) -> *mut c_void

source§

unsafe fn from_ptr(_: *mut c_void) -> Self

source§

impl IntoOpaque for usize

source§

fn into_ptr(self) -> *mut c_void

source§

unsafe fn from_ptr(ptr: *mut c_void) -> Self

source§

impl<T: Send + Sync> IntoOpaque for Box<T>

source§

fn into_ptr(self) -> *mut c_void

source§

unsafe fn from_ptr(ptr: *mut c_void) -> Self

source§

impl<T: Send + Sync> IntoOpaque for Arc<T>

source§

fn into_ptr(self) -> *mut c_void

source§

unsafe fn from_ptr(ptr: *mut c_void) -> Self

Implementors§