Expand description
§Rust GLib and GObject bindings
Rust bindings and wrappers for GLib, part of gtk-rs-core.
GLib 2.56 is the lowest supported version for the underlying library.
This library contains bindings to GLib and GObject types and APIs as well as common building blocks used in both handmade and machine generated bindings to GTK and other GLib-based libraries.
It is the foundation for higher level libraries with uniform Rusty (safe and strongly typed) APIs. It avoids exposing GLib-specific data types where possible and is not meant to provide comprehensive GLib bindings, which would often amount to duplicating the Rust Standard Library or other utility crates.
§Minimum supported Rust version
Currently, the minimum supported Rust version is 1.70.0
.
§Dynamic typing
Most types in the GLib family have Type
identifiers.
Their corresponding Rust types implement the StaticType
trait.
A dynamically typed Value
can carry values of any StaticType
.
Variants can carry values of StaticVariantType
.
§Errors
Errors are represented by Error
, which can
carry values from various error domains such as
FileError
.
§Objects
Each class and interface has a corresponding smart pointer struct
representing an instance of that type (e.g. Object
for GObject
or
gtk4::Widget
for GtkWidget
). They are reference counted and feature
interior mutability similarly to Rust’s
Rc<RefCell<T>>
idiom. Consequently, cloning objects is cheap and their methods never require
mutable borrows. Two smart pointers are equal if they point to the same
object.
The root of the object hierarchy is Object
.
Inheritance and subtyping is denoted with the IsA
marker trait. The Cast
trait enables upcasting
and downcasting.
Interfaces and non-leaf classes also have corresponding traits (e.g.
ObjectExt
or WidgetExt
), which are blanketly implemented for all
their subtypes.
You can create new subclasses of Object
or other object types. Look at
the module’s documentation for further details and a code example.
§Under the hood
GLib-based libraries largely operate on pointers to various boxed or
reference counted structures so the bindings have to implement corresponding
smart pointers (wrappers), which encapsulate resource management and safety
checks. Such wrappers are defined via the
wrapper!
macro, which uses abstractions
defined in the wrapper
, boxed
,
shared
and object
modules.
The translate
module defines and partly implements
conversions between high level Rust types (including the aforementioned
wrappers) and their FFI counterparts.
§Documentation
§Using
We recommend using crates from crates.io, as demonstrated here.
If you want to track the bleeding edge, use the git dependency instead:
[dependencies]
glib = { git = "https://github.com/gtk-rs/gtk-rs-core.git", package = "glib" }
Avoid mixing versioned and git crates like this:
# This will not compile
[dependencies]
glib = "0.13"
glib = { git = "https://github.com/gtk-rs/gtk-rs-core.git", package = "glib" }
§License
glib is available under the MIT License, please refer to it.
Re-exports§
pub use self::closure::Closure;
pub use self::closure::RustClosure;
pub use self::enums::EnumClass;
pub use self::enums::EnumValue;
pub use self::enums::FlagsBuilder;
pub use self::enums::FlagsClass;
pub use self::enums::FlagsValue;
pub use self::enums::UserDirectory;
pub use self::error::BoolError;
pub use self::error::Error;
pub use self::object::BorrowedObject;
pub use self::object::Class;
pub use self::object::InitiallyUnowned;
pub use self::object::Interface;
pub use self::object::Object;
pub use self::object::SendWeakRef;
pub use self::object::WeakRef;
pub use self::signal::signal_handler_block;
pub use self::signal::signal_handler_disconnect;
pub use self::signal::signal_handler_unblock;
pub use self::signal::signal_stop_emission_by_name;
pub use self::signal::Propagation;
pub use self::signal::SignalHandlerId;
pub use self::types::ILong;
pub use self::types::Pointer;
pub use self::types::Type;
pub use self::types::ULong;
pub use self::value::BoxedValue;
pub use self::value::SendValue;
pub use self::value::Value;
pub use self::variant::FixedSizeVariantArray;
pub use self::variant::Variant;
pub use self::FileError;
pub use collections::List;
pub use collections::PtrSlice;
pub use collections::SList;
pub use collections::Slice;
pub use collections::StrV;
pub use self::char::Char;
pub use self::char::UChar;
pub use self::match_info::MatchInfo;
pub use bitflags;
pub use glib_sys as ffi;
pub use gobject_sys as gobject_ffi;
pub use self::source::*;
Modules§
- boxed
IMPL
Boxed wrapper implementation.- boxed_
inline IMPL
BoxedInline wrapper implementation.- char
- clone
- closure
- collections
- enums
- error
Error
binding and helper trait.- match_
info - object
IMPL
Object wrapper implementation andObject
binding.- prelude
- Traits and essential types intended for blanket imports.
- property
- regex
- This module is inefficient and should not be used by Rust programs except for compatibility with GLib.Regex based APIs.
- shared
IMPL
Shared (reference counted) wrapper implementation.- signal
IMPL
Low level signal support.- source
- subclass
- Module containing infrastructure for subclassing
GObject
s and registering boxed types. - thread_
guard - translate
- Translation between GLib/GLib-based FFI types and their Rust counterparts.
- types
- Runtime type information.
- value
Value
binding and helper traits.- variant
Variant
binding and helper traits.- wrapper
IMPL
Thewrapper!
macro and miscellaneous wrapper traits.
Macros§
- bool_
error - Generic error used for functions that fail without any further information
- clone
- Macro for passing variables as strong or weak references into a closure.
- closure
- Macro for creating a
Closure
object. This is a wrapper aroundClosure::new
that automatically type checks its arguments at run-time. - closure_
local - The same as
closure!
but usesClosure::new_local
as a constructor. This is useful for closures which can’t be sent across threads. See the documentation ofclosure!
for details. - debug
log
andlog_macros
- A macro which behaves exactly as
log::debug!
except that it sets the current log target to the contents of aG_LOG_DOMAIN
constant (and fails to build if not defined). - error
log
andlog_macros
- A macro which behaves exactly as
log::error!
except that it sets the current log target to the contents of aG_LOG_DOMAIN
constant (and fails to build if not defined). - function_
name - This macro returns the name of the enclosing function.
As the internal implementation is based on the
std::any::type_name
, this macro derives all the limitations of this function. - g_
critical - Macro used to log using GLib logging system. It uses g_log.
- g_debug
- Macro used to log using GLib logging system. It uses g_log.
- g_error
- Macro used to log using GLib logging system. It uses g_log.
- g_info
- Macro used to log using GLib logging system. It uses g_log.
- g_log
- Macro used to log using GLib logging system. It uses g_log.
- g_
message - Macro used to log using GLib logging system. It uses g_log.
- g_print
- Macro used to print messages. It uses g_print.
- g_
printerr - Macro used to print error messages. It uses g_printerr.
- g_
warning - Macro used to log using GLib logging system. It uses g_log.
- gformat
- Creates a
GString
using interpolation of runtime expressions. - glib_
boxed_ inline_ wrapper - Wrapper implementations for BoxedInline types. See
wrapper!
. - glib_
boxed_ wrapper - Wrapper implementations for Boxed types. See
wrapper!
. - glib_
object_ wrapper - ObjectType implementations for Object types. See
wrapper!
. - glib_
shared_ wrapper - Wrapper implementations for shared types. See
wrapper!
. - gstr
- Converts a static string literal into a static nul-terminated string.
- info
log
andlog_macros
- A macro which behaves exactly as
log::info!
except that it sets the current log target to the contents of aG_LOG_DOMAIN
constant (and fails to build if not defined). - log_
structured - Macro used to log using GLib structured logging system.
- result_
from_ gboolean - trace
log
andlog_macros
- A macro which behaves exactly as
log::trace!
except that it sets the current log target to the contents of aG_LOG_DOMAIN
constant (and fails to build if not defined). - warn
log
andlog_macros
- A macro which behaves exactly as
log::warn!
except that it sets the current log target to the contents of aG_LOG_DOMAIN
constant (and fails to build if not defined). - wrapper
- Defines a wrapper type and implements the appropriate traits.
Structs§
- Binding
- GLib type: GObject with reference counted clone semantics.
- Binding
Flags - Binding
Group v2_72
- GLib type: GObject with reference counted clone semantics.
- Binding
Group Builder v2_72
- Builder for binding group bindings.
- Boxed
AnyObject - This is a subclass of
glib::object::Object
capable of storing any Rust type. It let’s you insert a Rust type anywhere aglib::object::Object
is needed. The inserted value can then be borrowed as a Rust type, by using the various provided methods. - Byte
Array - GLib type: Shared boxed type with reference counted clone semantics.
- Bytes
- A shared immutable byte slice (the equivalent of
Rc<[u8]>
). - Checksum
- GLib type: Boxed type with copy-on-clone semantics.
- Collation
Key - A
CollationKey
allows ordering strings using the linguistically correct rules for the current locale. - Date
- GLib type: Inline allocated boxed type with stack copy semantics.
- Date
Time - GLib type: Shared boxed type with reference counted clone semantics.
- Exit
Code - File
SetContents Flags v2_66
- Filename
Collation Key - A
FilenameCollationKey
allows ordering file names using the linguistically correct rules for the current locale. Compared toCollationKey
, filename collation keys take into consideration dots and other characters commonly found in file names. - Format
Size Flags - Future
With Timeout Error - The error returned when a future times out.
- GStr
- Representation of a borrowed
GString
. - GStr
Interior NulError - Error type indicating that a buffer had unexpected nul-bytes.
- GString
- A type representing an owned, C-compatible, nul-terminated UTF-8 string.
- GString
Builder - A mutable text buffer that grows automatically.
- GString
Interior NulError - Error type indicating that a buffer had unexpected nul-bytes.
- GString
NoTrailing NulError - Error type indicating that a buffer did not have a trailing nul-byte.
- GString
Ptr NULL
-terminated UTF-8 string as stored inStrV
.- GString
Utf8 Error - Error type indicating that a buffer had invalid UTF-8.
- Glib
Logger log
- An implementation of a
log
compatible logger which logs over glib logging facilities. - IConv
- IOCondition
- Interface
Info - Join
Error - Task failure from awaiting a
JoinHandle
. - Join
Handle - A handle to a task running on a
MainContext
. - KeyFile
- GLib type: Shared boxed type with reference counted clone semantics.
- KeyFile
Flags - LogField
- Structure representing a single field in a structured log entry.
- LogHandler
Id - LogLevel
Flags - LogLevels
- Main
Context - GLib type: Shared boxed type with reference counted clone semantics.
- Main
Context Acquire Guard - Main
Context Flags v2_72
- Main
Loop - GLib type: Shared boxed type with reference counted clone semantics.
- Markup
Parse Context - GLib type: Shared boxed type with reference counted clone semantics.
- Option
Flags - Param
Flags - Param
Spec - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Boolean - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Boolean Builder - Param
Spec Boxed - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Boxed Builder - Param
Spec Char - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Char Builder - Param
Spec Double - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Double Builder - Param
Spec Enum - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Enum Builder - Param
Spec Flags - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Flags Builder - Param
Spec Float - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Float Builder - Param
SpecG Type - GLib type: Shared boxed type with reference counted clone semantics.
- Param
SpecG Type Builder - Param
Spec Int - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Int64 - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Int64 Builder - Param
Spec IntBuilder - Param
Spec Long - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Long Builder - Param
Spec Object - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Object Builder - Param
Spec Override - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Override Builder - Param
Spec Param - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Param Builder - Param
Spec Pointer - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Pointer Builder - Param
Spec String - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec String Builder - Param
SpecU Char - GLib type: Shared boxed type with reference counted clone semantics.
- Param
SpecU Char Builder - Param
SpecU Int - GLib type: Shared boxed type with reference counted clone semantics.
- Param
SpecU Int64 - GLib type: Shared boxed type with reference counted clone semantics.
- Param
SpecU Int64 Builder - Param
SpecU IntBuilder - Param
SpecU Long - GLib type: Shared boxed type with reference counted clone semantics.
- Param
SpecU Long Builder - Param
Spec Unichar - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Unichar Builder - Param
Spec Value Array - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Value Array Builder - Param
Spec Variant - GLib type: Shared boxed type with reference counted clone semantics.
- Param
Spec Variant Builder - Quark
- Regex
- GLib type: Shared boxed type with reference counted clone semantics.
- Regex
Compile Flags - Regex
Match Flags - Signal
Flags - Signal
Group v2_74
- GLib type: GObject with reference counted clone semantics.
- Source
- GLib type: Shared boxed type with reference counted clone semantics.
- Source
Future - Represents a
Future
around aglib::Source
. The future will be resolved once the source has provided a value - Source
Stream - Represents a
Stream
around aglib::Source
. The stream will be provide all values that are provided by the source - Spawn
Flags - Spawn
Within Join Handle - Variant of
JoinHandle
that is returned fromMainContext::spawn_from_within
. - Thread
Handle - A handle to a thread running on a
ThreadPool
. - Thread
Pool - Time
Span - A value representing an interval of time, in microseconds.
- Time
Zone - GLib type: Shared boxed type with reference counted clone semantics.
- Type
Flags - Type
Info - Type
Module - GLib type: GObject with reference counted clone semantics.
- Type
Plugin - GLib type: GObject with reference counted clone semantics.
- Type
Value Table - Uri
v2_66
- GLib type: Shared boxed type with reference counted clone semantics.
- UriFlags
v2_66
- UriHide
Flags v2_66
- UriParams
Flags v2_66
- Value
Array - GLib type: Boxed type with copy-on-clone semantics.
- Variant
Dict VariantDict
is a mutable key/value store where the keys are always strings and the values areVariant
s.- Variant
Iter - Iterator over items in a variant.
- Variant
StrIter - Iterator over items in a variant of type
as
. - Variant
Ty - Describes
Variant
types. - Variant
TyIterator - An iterator over the individual components of a tuple VariantTy.
- Variant
Type - Describes
Variant
types.
Enums§
- Character
Decomposition - The result of a single step of the Unicode canonical decomposition algorithm
- Checksum
Type - Control
Flow - Continue calling the closure in the future iterations or drop it.
- Convert
Error - CvtError
- A wrapper for
ConvertError
that can hold an offset into the input string. - Date
Month - Date
Weekday - Decomposition
Kind - The kind of decomposition to perform
- File
Error - GStr
Error - Error type holding all possible failures when creating a
GStr
reference. - GString
From Error - Error type holding all possible failures when creating a
GString
. - Glib
Logger Domain log
- Enumeration of the possible domain handling behaviours for a
GlibLogger
. - Glib
Logger Format log
- Enumeration of the possible formatting behaviours for a
GlibLogger
. - IConv
Error - A wrapper for
std::io::Error
that can hold an offset into an input string. - KeyFile
Error - LogLevel
- LogWriter
Output - Markup
Error - Normalize
Mode - Option
Arg - Seek
Type - Time
Type - Unicode
Break Type - Unicode
Script - Unicode
Type - UriError
v2_66
- Variant
Class
Constants§
- CLONE_
MACRO_ LOG_ DOMAIN - This is the log domain used by the
clone!
macro. If you want to use a custom logger (it prints to stdout by default), you can set your own logger using the correspondinglog
functions. - NONE_
STR
Statics§
- CSET_
A_ 2_ Z - CSET_
DIGITS - CSET_
a_ 2_ z - KEY_
FILE_ DESKTOP_ GROUP - KEY_
FILE_ DESKTOP_ KEY_ ACTIONS - KEY_
FILE_ DESKTOP_ KEY_ CATEGORIES - KEY_
FILE_ DESKTOP_ KEY_ COMMENT - KEY_
FILE_ DESKTOP_ KEY_ DBUS_ ACTIVATABLE - KEY_
FILE_ DESKTOP_ KEY_ EXEC - KEY_
FILE_ DESKTOP_ KEY_ GENERIC_ NAME - KEY_
FILE_ DESKTOP_ KEY_ HIDDEN - KEY_
FILE_ DESKTOP_ KEY_ ICON - KEY_
FILE_ DESKTOP_ KEY_ MIME_ TYPE - KEY_
FILE_ DESKTOP_ KEY_ NAME - KEY_
FILE_ DESKTOP_ KEY_ NOT_ SHOW_ IN - KEY_
FILE_ DESKTOP_ KEY_ NO_ DISPLAY - KEY_
FILE_ DESKTOP_ KEY_ ONLY_ SHOW_ IN - KEY_
FILE_ DESKTOP_ KEY_ PATH - KEY_
FILE_ DESKTOP_ KEY_ STARTUP_ NOTIFY - KEY_
FILE_ DESKTOP_ KEY_ STARTUP_ WM_ CLASS - KEY_
FILE_ DESKTOP_ KEY_ TERMINAL - KEY_
FILE_ DESKTOP_ KEY_ TRY_ EXEC - KEY_
FILE_ DESKTOP_ KEY_ TYPE - KEY_
FILE_ DESKTOP_ KEY_ URL - KEY_
FILE_ DESKTOP_ KEY_ VERSION - KEY_
FILE_ DESKTOP_ TYPE_ APPLICATION - KEY_
FILE_ DESKTOP_ TYPE_ DIRECTORY - KEY_
FILE_ DESKTOP_ TYPE_ LINK - OPTION_
REMAINING - STR_
DELIMITERS - TEST_
OPTION_ ISOLATE_ DIRS v2_60
- TEST_
OPTION_ NONFATAL_ ASSERTIONS v2_84
- TEST_
OPTION_ NO_ PRGNAME v2_84
- URI_
RESERVED_ CHARS_ GENERIC_ DELIMITERS - URI_
RESERVED_ CHARS_ SUBCOMPONENT_ DELIMITERS
Traits§
- HasParam
Spec - IntoG
Str - A trait to accept both
&str
or&GStr
as an argument. - Into
OptionalG Str - A trait to accept both
Option<&str>
orOption<&GStr>
as an argument. - Param
Spec Builder Ext - A trait implemented by the various
ParamSpec
builder types. - Param
Spec Type - Unichar
- This trait provides access to Unicode character classification and manipulations functions provided by GLib that do not exist in the standard library
Functions§
- access
- application_
name - base64_
decode - base64_
encode - casefold
- charset
- Obtain the character set for the current locale.
- check_
version - child_
watch_ future - Create a
Future
that will resolve once the child process with the given pid exits - child_
watch_ future_ with_ priority - Create a
Future
that will resolve once the child process with the given pid exits - codeset
- compute_
checksum_ for_ bytes - compute_
checksum_ for_ data - compute_
checksum_ for_ string - compute_
hmac_ for_ bytes - compute_
hmac_ for_ data - console_
charset v2_62
- convert
- convert_
with_ fallback - current_
dir - dcgettext
- dgettext
- dngettext
- dpgettext
- dpgettext2
- environ
- environ_
getenv - file_
get_ contents - file_
open_ tmp - file_
set_ contents - file_
set_ contents_ full v2_66
- filename_
charsets - filename_
display_ basename - filename_
display_ name - filename_
from_ uri - filename_
from_ utf8 - filename_
to_ uri - filename_
to_ utf8 - find_
program_ in_ path - format_
size - format_
size_ full - future_
with_ timeout - Add a timeout to a
Future
. - future_
with_ timeout_ with_ priority - Add a timeout to a
Future
. - getenv
- home_
dir - host_
name - hostname_
is_ ascii_ encoded - hostname_
is_ ip_ address - hostname_
is_ non_ ascii - hostname_
to_ ascii - hostname_
to_ unicode - interval_
stream - Create a
Stream
that will provide a value every given number of milliseconds. - interval_
stream_ seconds - Create a
Stream
that will provide a value every given number of seconds. - interval_
stream_ seconds_ with_ priority - Create a
Stream
that will provide a value every given number of seconds. - interval_
stream_ with_ priority - Create a
Stream
that will provide a value every given number of milliseconds. - is_
canonical_ pspec_ name - language_
names - language_
names_ with_ category v2_58
- listenv
- locale_
from_ utf8 - locale_
to_ utf8 - locale_
variants - log_
default_ handler - log_
remove_ handler - log_
set_ always_ fatal - log_
set_ default_ handler - To set back the default print handler, use the
log_unset_default_handler
function. - log_
set_ fatal_ mask - log_
set_ handler - log_
set_ writer_ func - log_
structured_ array - log_
unset_ default_ handler - To set the default print handler, use the
log_set_default_handler
function. - log_
variant - log_
writer_ default - log_
writer_ ⚠default_ set_ use_ stderr - Sets whether GLib log functions output to stderr or stdout.
- log_
writer_ default_ would_ drop - log_
writer_ format_ fields - log_
writer_ is_ journald - log_
writer_ journald - log_
writer_ standard_ streams - log_
writer_ supports_ color - main_
current_ source - main_
depth - markup_
escape_ text - mkdir_
with_ parents - mkdtemp
- mkdtemp_
full - mkstemp
- mkstemp_
full - monotonic_
time - normalize
- num_
processors - on_
error_ query - on_
error_ stack_ trace - os_info
v2_64
- prgname
- program_
name - Same as
get_prgname()
. - random_
double - random_
double_ range - random_
int - random_
int_ range - random_
set_ seed - real_
name - real_
time - reload_
user_ special_ dirs_ cache - rust_
log_ handler log
- Provides a glib log handler which routes all logging messages to the
log crate
. - set_
application_ name - set_
prgname - set_
print_ handler - To set back the default print handler, use the
unset_print_handler
function. - set_
printerr_ handler - To set back the default print handler, use the
unset_printerr_handler
function. - set_
program_ name - Same as
set_prgname()
. - setenv
- shell_
parse_ argv - shell_
quote - shell_
unquote - spaced_
primes_ closest - spawn_
async - spawn_
async_ with_ fds v2_58
and non-Windows - spawn_
async_ with_ pipes Non-Windows - spawn_
check_ exit_ status Deprecated - spawn_
check_ wait_ status v2_70
- spawn_
command_ line_ async Unix - spawn_
future - Spawn a new infallible
Future
on the thread-default main context. - spawn_
future_ local - Spawn a new infallible
Future
on the thread-default main context. - system_
config_ dirs - system_
data_ dirs - timeout_
future - Create a
Future
that will resolve after the given number of milliseconds. - timeout_
future_ seconds - Create a
Future
that will resolve after the given number of seconds. - timeout_
future_ seconds_ with_ priority - Create a
Future
that will resolve after the given number of seconds. - timeout_
future_ with_ priority - Create a
Future
that will resolve after the given number of milliseconds. - tmp_dir
- unix_
open_ pipe - unix_
signal_ future Unix - Create a
Future
that will resolve once the given UNIX signal is raised - unix_
signal_ future_ with_ priority Unix - Create a
Future
that will resolve once the given UNIX signal is raised - unix_
signal_ stream Unix - Create a
Stream
that will provide a value whenever the given UNIX signal is raised - unix_
signal_ stream_ with_ priority Unix - Create a
Stream
that will provide a value whenever the given UNIX signal is raised - unlink
- unset_
print_ handler - To set the default print handler, use the
set_print_handler
function. - unset_
printerr_ handler - To set the default print handler, use the
set_printerr_handler
function. - unsetenv
- uri_
escape_ string - uri_
parse_ scheme - uri_
unescape_ segment - uri_
unescape_ string - user_
cache_ dir - user_
config_ dir - user_
data_ dir - user_
name - user_
runtime_ dir - user_
special_ dir - user_
state_ dir v2_72
- usleep
- utf8_
to_ utf32 - utf32_
to_ utf8 - uuid_
string_ is_ valid - uuid_
string_ random
Type Aliases§
Attribute Macros§
- async_
test - An attribute macro for writing asynchronous test functions.
- derived_
properties - When applied to
ObjectImpl
- flags
- Attribute macro for defining flags using the
bitflags
crate. This macro will also define aGFlags::type_
function and theglib::Value
traits. - object_
interface - Macro for boilerplate of
ObjectInterface
implementations. - object_
subclass - Macro for boilerplate of
ObjectSubclass
implementations.
Derive Macros§
- Boxed
- Derive macro for defining a
BoxedType
::type_
function and theglib::Value
traits. Optionally, the type can be marked asnullable
to get an implementation ofglib::value::ToValueOptional
. - Downgrade
- Macro for deriving implementations of
glib::clone::Downgrade
andglib::clone::Upgrade
traits and a weak type. - Enum
- Derive macro to register a Rust enum in the GLib type system and derive the
glib::Value
traits. - Error
Domain - Derive macro for defining a GLib error domain and its associated
ErrorDomain
trait. - Properties
- This macro enables you to derive object properties in a quick way.
- Shared
Boxed - Derive macro for defining a
SharedType
::get_type
function and theglib::Value
traits. Optionally, the type can be marked asnullable
to get an implementation ofglib::value::ToValueOptional
. - Value
Delegate - Example
- Variant
- Derive macro for serializing/deserializing custom structs/enums as
glib::Variant
s.