pub trait FromGlibPtrFull<P: Ptr>: Sized {
    // Required method
    unsafe fn from_glib_full(ptr: P) -> Self;
}
Expand description

Translate from a pointer type which is annotated with transfer full. This transfers the ownership of the value to the Rust side.

Because ownership can only be transferred if something is already referenced, this is unsuitable for floating references.

Safety

The implementation of this trait should not alter the reference count or make copies of the underlying value. Values obtained using this trait must be properly released on drop() by the implementing type.

For more information, refer to module level documentation.

Required Methods§

source

unsafe fn from_glib_full(ptr: P) -> Self

Safety

See trait level notes on safety

Implementations on Foreign Types§

source§

impl FromGlibPtrFull<*mut i8> for String

source§

unsafe fn from_glib_full(ptr: *mut c_char) -> Self

source§

impl<P: Ptr, T: FromGlibPtrFull<P>> FromGlibPtrFull<P> for Option<T>

source§

unsafe fn from_glib_full(ptr: P) -> Option<T>

source§

impl FromGlibPtrFull<*mut i8> for PathBuf

source§

unsafe fn from_glib_full(ptr: *mut c_char) -> Self

source§

impl FromGlibPtrFull<*const i8> for String

source§

unsafe fn from_glib_full(ptr: *const c_char) -> Self

source§

impl FromGlibPtrFull<*const i8> for PathBuf

source§

unsafe fn from_glib_full(ptr: *const c_char) -> Self

source§

impl FromGlibPtrFull<*const i8> for OsString

source§

unsafe fn from_glib_full(ptr: *const c_char) -> Self

source§

impl FromGlibPtrFull<*mut i8> for OsString

source§

unsafe fn from_glib_full(ptr: *mut c_char) -> Self

Implementors§

source§

impl<T: 'static, MM: BoxedMemoryManager<T>> FromGlibPtrFull<*const T> for Boxed<T, MM>

source§

impl<T: 'static, MM: BoxedMemoryManager<T>> FromGlibPtrFull<*mut T> for Boxed<T, MM>

source§

impl<T: 'static, MM: SharedMemoryManager<T>> FromGlibPtrFull<*mut T> for Shared<T, MM>