Expand description
Translation between GLib/GLib-based FFI types and their Rust counterparts.
This module allows library bindings authors to decouple type translation logic and use unified idioms at FFI boundaries. It also implements translation of GLib core data types.
FromGlib
, from_glib
and ToGlib
translate simple types like bool
.
pub fn set_accept_focus(&self, accept_focus: bool) {
unsafe { gdk_sys::gdk_window_set_accept_focus(self.pointer, accept_focus.to_glib()) }
}
pub fn get_accept_focus(&self) -> bool {
unsafe { from_glib(gdk_sys::gdk_window_get_accept_focus(self.pointer)) }
}
ToGlibPtr
, FromGlibPtrNone
, FromGlibPtrFull
and FromGlibPtrBorrow
work on gpointer
s
and support different modes of ownership transfer.
fn get_title(&self) -> Option<String> {
unsafe {
let title = gtk_sys::gtk_window_get_title(self.pointer);
from_glib_none(title)
}
}
Letting the foreign library borrow pointers from the Rust side often
requires having a temporary variable of an intermediate type (e.g. CString
).
A Stash
contains the temporary storage and a pointer into it that
is valid for the lifetime of the Stash
. As the lifetime of the Stash
returned
from to_glib_none
is at least the enclosing statement, you can avoid explicitly
binding the stash in most cases and just take the pointer out of it:
pub fn set_icon_name(&self, name: &str) {
unsafe {
gdk_sys::gdk_window_set_icon_name(self.pointer, name.to_glib_none().0)
}
}
Structs§
Traits§
- From
Glib - Translate a simple type.
- From
Glib Container - Translate from a container.
- From
Glib Container AsVec - From
Glib PtrArray Container AsVec - From
Glib PtrBorrow - Translate from a pointer type by borrowing. Don’t increase the refcount
- From
Glib PtrContainer - Translate from a container of pointers.
- From
Glib PtrFull - Translate from a pointer type taking ownership, transfer: full.
- From
Glib PtrNone - Translate from a pointer type without taking ownership, transfer: none.
- Glib
PtrDefault - Provides the default pointer type to be used in some container conversions.
- Ptr
- A pointer
- ToBool
- ToGlib
- Translate a simple type.
- ToGlib
Container From Slice - ToGlib
Ptr - Translate to a pointer.
- ToGlib
PtrMut - Translate to a pointer with a mutable borrow.
- Uninitialized
- A trait for creating an uninitialized value. Handy for receiving outparams.
Functions§
- c_
ptr_ ⚠array_ len - const_
override - Overrides pointer constness.
- from_
glib - Translate a simple type.
- from_
glib_ ⚠borrow - Translate from a pointer type, borrowing the pointer.
- from_
glib_ ⚠full - Translate from a pointer type, transfer: full (assume ownership).
- from_
glib_ ⚠none - Translate from a pointer type, transfer: none.
- mut_
override - Overrides pointer mutability.
- some_if
- Returns
Some(val)
if the condition is true andNone
otherwise. - uninitialized⚠
- Returns an uninitialized value.