glib::translate

Trait 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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

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

Source§

type Storage = Cow<'static, [u8]>

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> ToGlibPtr<'a, *const i8> for CString

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

type Storage = Cow<'static, [u8]>

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 CString

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a, P: Ptr, T> ToGlibPtr<'a, P> for Cow<'a, T>
where T: ToOwned + ?Sized + ToGlibPtr<'a, P>, T::Owned: ToGlibPtr<'a, P>,

Source§

type Storage = CowStash<<T as ToGlibPtr<'a, P>>::Storage, <<T as ToOwned>::Owned 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, P: Ptr, T: ToGlibContainerFromSlice<'a, P>> ToGlibPtr<'a, P> for [T]

Source§

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

Source§

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

Source§

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, P: Ptr, T: ?Sized + ToGlibPtr<'a, P>> ToGlibPtr<'a, P> for &'a T

Source§

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

Implementors§

Source§

impl<'a> ToGlibPtr<'a, *const *mut i8> for StrV

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *const <T as GlibPtrDefault>::GlibType> for PtrSlice<T>

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *const GList> for List<T>

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *const GSList> for SList<T>

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *mut <T as GlibPtrDefault>::GlibType> for PtrSlice<T>

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *mut GList> for List<T>

Source§

impl<'a, T: TransparentPtrType + 'a> ToGlibPtr<'a, *mut GSList> for SList<T>

Source§

impl<'a, T: TransparentType + 'a> ToGlibPtr<'a, *const <T as TransparentType>::GlibType> for Slice<T>

Source§

impl<'a, T: TransparentType + 'a> ToGlibPtr<'a, *mut <T as TransparentType>::GlibType> for Slice<T>