Trait glib::translate::ToGlibPtr

source ·
pub trait ToGlibPtr<'a, P: Copy> {
    type Storage;

    // Required method
    fn to_glib_none(&'a self) -> Stash<'a, P, Self>;

    // Provided methods
    fn to_glib_container(&'a self) -> Stash<'a, P, Self> { ... }
    fn to_glib_full(&self) -> P { ... }
}
Expand description

Translate to a pointer.

Required Associated Types§

Required Methods§

source

fn to_glib_none(&'a self) -> Stash<'a, P, Self>

Transfer: none.

The pointer in the Stash is only valid for the lifetime of the Stash.

Provided Methods§

source

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

Transfer: container.

We transfer the container ownership to the foreign library retaining the elements ownership.

source

fn to_glib_full(&self) -> P

Transfer: full.

We transfer the ownership to the foreign library.

Implementations on Foreign Types§

source§

impl<'a> ToGlibPtr<'a, *mut i8> for str

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut c_char, Self>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a> ToGlibPtr<'a, *mut i8> for String

§

type Storage = CString

source§

fn to_glib_none(&self) -> Stash<'a, *mut c_char, String>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a> ToGlibPtr<'a, *const i8> for OsString

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *const c_char, Self>

source§

impl<'a> ToGlibPtr<'a, *mut i8> for Path

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut c_char, Self>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a> ToGlibPtr<'a, *mut i8> for OsString

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut c_char, Self>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a, P: Ptr, T: ToGlibPtr<'a, P>> ToGlibPtr<'a, P> for Option<T>

§

type Storage = Option<<T as ToGlibPtr<'a, P>>::Storage>

source§

fn to_glib_none(&'a self) -> Stash<'a, P, Option<T>>

source§

fn to_glib_full(&self) -> P

source§

impl<'a> ToGlibPtr<'a, *mut GHashTable> for HashMap<String, String>

§

type Storage = HashTable

source§

fn to_glib_none(&self) -> Stash<'a, *mut GHashTable, Self>

source§

fn to_glib_full(&self) -> *mut GHashTable

source§

impl<'a, P: Ptr, T: ?Sized + ToGlibPtr<'a, P>> ToGlibPtr<'a, P> for &'a T

§

type Storage = <T as ToGlibPtr<'a, P>>::Storage

source§

fn to_glib_none(&'a self) -> Stash<'a, P, Self>

source§

fn to_glib_full(&self) -> P

source§

impl<'a> ToGlibPtr<'a, *mut i8> for PathBuf

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut c_char, Self>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a> ToGlibPtr<'a, *const i8> for Path

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *const c_char, Self>

source§

impl<'a> ToGlibPtr<'a, *mut i8> for OsStr

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *mut c_char, Self>

source§

fn to_glib_full(&self) -> *mut c_char

source§

impl<'a> ToGlibPtr<'a, *const i8> for PathBuf

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *const c_char, Self>

source§

impl<'a> ToGlibPtr<'a, *const i8> for String

§

type Storage = CString

source§

fn to_glib_none(&self) -> Stash<'a, *const c_char, String>

source§

fn to_glib_full(&self) -> *const c_char

source§

impl<'a> ToGlibPtr<'a, *const i8> for OsStr

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *const c_char, Self>

source§

impl<'a> ToGlibPtr<'a, *const i8> for str

§

type Storage = CString

source§

fn to_glib_none(&'a self) -> Stash<'a, *const c_char, Self>

source§

fn to_glib_full(&self) -> *const c_char

source§

impl<'a, P: Ptr, T: ToGlibContainerFromSlice<'a, P>> ToGlibPtr<'a, P> for [T]

§

type Storage = <T as ToGlibContainerFromSlice<'a, P>>::Storage

source§

fn to_glib_none(&'a self) -> Stash<'a, P, Self>

source§

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

source§

fn to_glib_full(&self) -> P

Implementors§

source§

impl<'a, T: 'static, MM> ToGlibPtr<'a, *mut T> for Shared<T, MM>where MM: SharedMemoryManager<T> + 'static,

§

type Storage = &'a Shared<T, MM>

source§

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

§

type Storage = &'a Boxed<T, MM>