gobject_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6#![allow(
7    clippy::approx_constant,
8    clippy::type_complexity,
9    clippy::unreadable_literal,
10    clippy::upper_case_acronyms
11)]
12#![cfg_attr(docsrs, feature(doc_cfg))]
13
14use glib_sys as glib;
15
16#[cfg(unix)]
17#[allow(unused_imports)]
18use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
19#[allow(unused_imports)]
20use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
21#[allow(unused_imports)]
22use std::ffi::{
23    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
24};
25
26#[allow(unused_imports)]
27use glib::{gboolean, gconstpointer, gpointer, GType};
28
29pub const G_TYPE_INVALID: GType = 0 << G_TYPE_FUNDAMENTAL_SHIFT;
30pub const G_TYPE_NONE: GType = 1 << G_TYPE_FUNDAMENTAL_SHIFT;
31pub const G_TYPE_INTERFACE: GType = 2 << G_TYPE_FUNDAMENTAL_SHIFT;
32pub const G_TYPE_CHAR: GType = 3 << G_TYPE_FUNDAMENTAL_SHIFT;
33pub const G_TYPE_UCHAR: GType = 4 << G_TYPE_FUNDAMENTAL_SHIFT;
34pub const G_TYPE_BOOLEAN: GType = 5 << G_TYPE_FUNDAMENTAL_SHIFT;
35pub const G_TYPE_INT: GType = 6 << G_TYPE_FUNDAMENTAL_SHIFT;
36pub const G_TYPE_UINT: GType = 7 << G_TYPE_FUNDAMENTAL_SHIFT;
37pub const G_TYPE_LONG: GType = 8 << G_TYPE_FUNDAMENTAL_SHIFT;
38pub const G_TYPE_ULONG: GType = 9 << G_TYPE_FUNDAMENTAL_SHIFT;
39pub const G_TYPE_INT64: GType = 10 << G_TYPE_FUNDAMENTAL_SHIFT;
40pub const G_TYPE_UINT64: GType = 11 << G_TYPE_FUNDAMENTAL_SHIFT;
41pub const G_TYPE_ENUM: GType = 12 << G_TYPE_FUNDAMENTAL_SHIFT;
42pub const G_TYPE_FLAGS: GType = 13 << G_TYPE_FUNDAMENTAL_SHIFT;
43pub const G_TYPE_FLOAT: GType = 14 << G_TYPE_FUNDAMENTAL_SHIFT;
44pub const G_TYPE_DOUBLE: GType = 15 << G_TYPE_FUNDAMENTAL_SHIFT;
45pub const G_TYPE_STRING: GType = 16 << G_TYPE_FUNDAMENTAL_SHIFT;
46pub const G_TYPE_POINTER: GType = 17 << G_TYPE_FUNDAMENTAL_SHIFT;
47pub const G_TYPE_BOXED: GType = 18 << G_TYPE_FUNDAMENTAL_SHIFT;
48pub const G_TYPE_PARAM: GType = 19 << G_TYPE_FUNDAMENTAL_SHIFT;
49pub const G_TYPE_OBJECT: GType = 20 << G_TYPE_FUNDAMENTAL_SHIFT;
50pub const G_TYPE_VARIANT: GType = 21 << G_TYPE_FUNDAMENTAL_SHIFT;
51
52// Aliases
53pub type GSignalCMarshaller = GClosureMarshal;
54
55// Constants
56pub const G_PARAM_MASK: c_int = 255;
57pub const G_PARAM_STATIC_STRINGS: c_int = 224;
58pub const G_PARAM_USER_SHIFT: c_int = 8;
59pub const G_SIGNAL_FLAGS_MASK: c_int = 511;
60pub const G_SIGNAL_MATCH_MASK: c_int = 63;
61pub const G_TYPE_FLAG_RESERVED_ID_BIT: GType = 1;
62pub const G_TYPE_FUNDAMENTAL_MAX: c_int = 1020;
63pub const G_TYPE_FUNDAMENTAL_SHIFT: c_int = 2;
64pub const G_TYPE_RESERVED_BSE_FIRST: c_int = 32;
65pub const G_TYPE_RESERVED_BSE_LAST: c_int = 48;
66pub const G_TYPE_RESERVED_GLIB_FIRST: c_int = 22;
67pub const G_TYPE_RESERVED_GLIB_LAST: c_int = 31;
68pub const G_TYPE_RESERVED_USER_FIRST: c_int = 49;
69pub const G_VALUE_COLLECT_FORMAT_MAX_LENGTH: c_int = 8;
70pub const G_VALUE_INTERNED_STRING: c_int = 268435456;
71pub const G_VALUE_NOCOPY_CONTENTS: c_int = 134217728;
72
73// Flags
74pub type GBindingFlags = c_uint;
75pub const G_BINDING_DEFAULT: GBindingFlags = 0;
76pub const G_BINDING_BIDIRECTIONAL: GBindingFlags = 1;
77pub const G_BINDING_SYNC_CREATE: GBindingFlags = 2;
78pub const G_BINDING_INVERT_BOOLEAN: GBindingFlags = 4;
79
80pub type GConnectFlags = c_uint;
81pub const G_CONNECT_DEFAULT: GConnectFlags = 0;
82pub const G_CONNECT_AFTER: GConnectFlags = 1;
83pub const G_CONNECT_SWAPPED: GConnectFlags = 2;
84
85pub type GIOCondition = c_uint;
86pub const G_IO_IN: GIOCondition = 1;
87pub const G_IO_OUT: GIOCondition = 4;
88pub const G_IO_PRI: GIOCondition = 2;
89pub const G_IO_ERR: GIOCondition = 8;
90pub const G_IO_HUP: GIOCondition = 16;
91pub const G_IO_NVAL: GIOCondition = 32;
92
93pub type GParamFlags = c_uint;
94pub const G_PARAM_READABLE: GParamFlags = 1;
95pub const G_PARAM_WRITABLE: GParamFlags = 2;
96pub const G_PARAM_READWRITE: GParamFlags = 3;
97pub const G_PARAM_CONSTRUCT: GParamFlags = 4;
98pub const G_PARAM_CONSTRUCT_ONLY: GParamFlags = 8;
99pub const G_PARAM_LAX_VALIDATION: GParamFlags = 16;
100pub const G_PARAM_STATIC_NAME: GParamFlags = 32;
101pub const G_PARAM_PRIVATE: GParamFlags = 32;
102pub const G_PARAM_STATIC_NICK: GParamFlags = 64;
103pub const G_PARAM_STATIC_BLURB: GParamFlags = 128;
104pub const G_PARAM_EXPLICIT_NOTIFY: GParamFlags = 1073741824;
105pub const G_PARAM_DEPRECATED: GParamFlags = 2147483648;
106
107pub type GSignalFlags = c_uint;
108pub const G_SIGNAL_RUN_FIRST: GSignalFlags = 1;
109pub const G_SIGNAL_RUN_LAST: GSignalFlags = 2;
110pub const G_SIGNAL_RUN_CLEANUP: GSignalFlags = 4;
111pub const G_SIGNAL_NO_RECURSE: GSignalFlags = 8;
112pub const G_SIGNAL_DETAILED: GSignalFlags = 16;
113pub const G_SIGNAL_ACTION: GSignalFlags = 32;
114pub const G_SIGNAL_NO_HOOKS: GSignalFlags = 64;
115pub const G_SIGNAL_MUST_COLLECT: GSignalFlags = 128;
116pub const G_SIGNAL_DEPRECATED: GSignalFlags = 256;
117#[cfg(feature = "v2_68")]
118#[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
119pub const G_SIGNAL_ACCUMULATOR_FIRST_RUN: GSignalFlags = 131072;
120
121pub type GSignalMatchType = c_uint;
122pub const G_SIGNAL_MATCH_ID: GSignalMatchType = 1;
123pub const G_SIGNAL_MATCH_DETAIL: GSignalMatchType = 2;
124pub const G_SIGNAL_MATCH_CLOSURE: GSignalMatchType = 4;
125pub const G_SIGNAL_MATCH_FUNC: GSignalMatchType = 8;
126pub const G_SIGNAL_MATCH_DATA: GSignalMatchType = 16;
127pub const G_SIGNAL_MATCH_UNBLOCKED: GSignalMatchType = 32;
128
129pub type GTypeDebugFlags = c_uint;
130pub const G_TYPE_DEBUG_NONE: GTypeDebugFlags = 0;
131pub const G_TYPE_DEBUG_OBJECTS: GTypeDebugFlags = 1;
132pub const G_TYPE_DEBUG_SIGNALS: GTypeDebugFlags = 2;
133pub const G_TYPE_DEBUG_INSTANCE_COUNT: GTypeDebugFlags = 4;
134pub const G_TYPE_DEBUG_MASK: GTypeDebugFlags = 7;
135
136pub type GTypeFlags = c_uint;
137pub const G_TYPE_FLAG_NONE: GTypeFlags = 0;
138pub const G_TYPE_FLAG_ABSTRACT: GTypeFlags = 16;
139pub const G_TYPE_FLAG_VALUE_ABSTRACT: GTypeFlags = 32;
140pub const G_TYPE_FLAG_FINAL: GTypeFlags = 64;
141pub const G_TYPE_FLAG_DEPRECATED: GTypeFlags = 128;
142
143pub type GTypeFundamentalFlags = c_uint;
144pub const G_TYPE_FLAG_CLASSED: GTypeFundamentalFlags = 1;
145pub const G_TYPE_FLAG_INSTANTIATABLE: GTypeFundamentalFlags = 2;
146pub const G_TYPE_FLAG_DERIVABLE: GTypeFundamentalFlags = 4;
147pub const G_TYPE_FLAG_DEEP_DERIVABLE: GTypeFundamentalFlags = 8;
148
149// Unions
150#[derive(Copy, Clone)]
151#[repr(C)]
152pub union GTypeCValue {
153    pub v_int: c_int,
154    pub v_long: c_long,
155    pub v_int64: i64,
156    pub v_double: c_double,
157    pub v_pointer: gpointer,
158}
159
160impl ::std::fmt::Debug for GTypeCValue {
161    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
162        f.debug_struct(&format!("GTypeCValue @ {self:p}"))
163            .field("v_int", unsafe { &self.v_int })
164            .field("v_long", unsafe { &self.v_long })
165            .field("v_int64", unsafe { &self.v_int64 })
166            .field("v_double", unsafe { &self.v_double })
167            .field("v_pointer", unsafe { &self.v_pointer })
168            .finish()
169    }
170}
171
172#[derive(Copy, Clone)]
173#[repr(C)]
174pub union GValue_data {
175    pub v_int: c_int,
176    pub v_uint: c_uint,
177    pub v_long: c_long,
178    pub v_ulong: c_ulong,
179    pub v_int64: i64,
180    pub v_uint64: u64,
181    pub v_float: c_float,
182    pub v_double: c_double,
183    pub v_pointer: gpointer,
184}
185
186impl ::std::fmt::Debug for GValue_data {
187    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
188        f.debug_struct(&format!("GValue_data @ {self:p}"))
189            .field("v_int", unsafe { &self.v_int })
190            .field("v_uint", unsafe { &self.v_uint })
191            .field("v_long", unsafe { &self.v_long })
192            .field("v_ulong", unsafe { &self.v_ulong })
193            .field("v_int64", unsafe { &self.v_int64 })
194            .field("v_uint64", unsafe { &self.v_uint64 })
195            .field("v_float", unsafe { &self.v_float })
196            .field("v_double", unsafe { &self.v_double })
197            .field("v_pointer", unsafe { &self.v_pointer })
198            .finish()
199    }
200}
201
202#[derive(Copy, Clone)]
203#[repr(C)]
204pub union GWeakRef_priv {
205    pub p: gpointer,
206}
207
208impl ::std::fmt::Debug for GWeakRef_priv {
209    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
210        f.debug_struct(&format!("GWeakRef_priv @ {self:p}"))
211            .field("p", unsafe { &self.p })
212            .finish()
213    }
214}
215
216// Callbacks
217pub type GBaseFinalizeFunc = Option<unsafe extern "C" fn(gpointer)>;
218pub type GBaseInitFunc = Option<unsafe extern "C" fn(gpointer)>;
219pub type GBindingTransformFunc =
220    Option<unsafe extern "C" fn(*mut GBinding, *const GValue, *mut GValue, gpointer) -> gboolean>;
221pub type GBoxedCopyFunc = Option<unsafe extern "C" fn(gpointer) -> gpointer>;
222pub type GBoxedFreeFunc = Option<unsafe extern "C" fn(gpointer)>;
223pub type GCallback = Option<unsafe extern "C" fn()>;
224pub type GClassFinalizeFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
225pub type GClassInitFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
226pub type GClosureMarshal = Option<
227    unsafe extern "C" fn(*mut GClosure, *mut GValue, c_uint, *const GValue, gpointer, gpointer),
228>;
229pub type GClosureNotify = Option<unsafe extern "C" fn(gpointer, *mut GClosure)>;
230pub type GInstanceInitFunc = Option<unsafe extern "C" fn(*mut GTypeInstance, gpointer)>;
231pub type GInterfaceFinalizeFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
232pub type GInterfaceInitFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
233pub type GObjectFinalizeFunc = Option<unsafe extern "C" fn(*mut GObject)>;
234pub type GObjectGetPropertyFunc =
235    Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut GValue, *mut GParamSpec)>;
236pub type GObjectSetPropertyFunc =
237    Option<unsafe extern "C" fn(*mut GObject, c_uint, *const GValue, *mut GParamSpec)>;
238pub type GSignalAccumulator = Option<
239    unsafe extern "C" fn(
240        *mut GSignalInvocationHint,
241        *mut GValue,
242        *const GValue,
243        gpointer,
244    ) -> gboolean,
245>;
246pub type GSignalEmissionHook = Option<
247    unsafe extern "C" fn(*mut GSignalInvocationHint, c_uint, *const GValue, gpointer) -> gboolean,
248>;
249pub type GToggleNotify = Option<unsafe extern "C" fn(gpointer, *mut GObject, gboolean)>;
250pub type GTypeClassCacheFunc = Option<unsafe extern "C" fn(gpointer, *mut GTypeClass) -> gboolean>;
251pub type GTypeInterfaceCheckFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
252pub type GTypePluginCompleteInterfaceInfo =
253    Option<unsafe extern "C" fn(*mut GTypePlugin, GType, GType, *mut GInterfaceInfo)>;
254pub type GTypePluginCompleteTypeInfo =
255    Option<unsafe extern "C" fn(*mut GTypePlugin, GType, *mut GTypeInfo, *mut GTypeValueTable)>;
256pub type GTypePluginUnuse = Option<unsafe extern "C" fn(*mut GTypePlugin)>;
257pub type GTypePluginUse = Option<unsafe extern "C" fn(*mut GTypePlugin)>;
258pub type GTypeValueCollectFunc =
259    Option<unsafe extern "C" fn(*mut GValue, c_uint, *mut GTypeCValue, c_uint) -> *mut c_char>;
260pub type GTypeValueCopyFunc = Option<unsafe extern "C" fn(*const GValue, *mut GValue)>;
261pub type GTypeValueFreeFunc = Option<unsafe extern "C" fn(*mut GValue)>;
262pub type GTypeValueInitFunc = Option<unsafe extern "C" fn(*mut GValue)>;
263pub type GTypeValueLCopyFunc =
264    Option<unsafe extern "C" fn(*const GValue, c_uint, *mut GTypeCValue, c_uint) -> *mut c_char>;
265pub type GTypeValuePeekPointerFunc = Option<unsafe extern "C" fn(*const GValue) -> gpointer>;
266//pub type GVaClosureMarshal = Option<unsafe extern "C" fn(*mut GClosure, *mut GValue, gpointer, /*Unimplemented*/va_list, gpointer, c_int, *mut GType)>;
267pub type GValueTransform = Option<unsafe extern "C" fn(*const GValue, *mut GValue)>;
268pub type GWeakNotify = Option<unsafe extern "C" fn(gpointer, *mut GObject)>;
269
270// Records
271#[repr(C)]
272#[allow(dead_code)]
273pub struct GCClosure {
274    _truncated_record_marker: c_void,
275    // /*Ignored*/field closure has incomplete type
276}
277
278impl ::std::fmt::Debug for GCClosure {
279    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
280        f.debug_struct(&format!("GCClosure @ {self:p}")).finish()
281    }
282}
283
284#[repr(C)]
285#[allow(dead_code)]
286pub struct GClosure {
287    pub ref_count: c_uint,
288    _truncated_record_marker: c_void,
289    // field meta_marshal_nouse has incomplete type
290}
291
292impl ::std::fmt::Debug for GClosure {
293    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
294        f.debug_struct(&format!("GClosure @ {self:p}")).finish()
295    }
296}
297
298#[derive(Copy, Clone)]
299#[repr(C)]
300pub struct GClosureNotifyData {
301    pub data: gpointer,
302    pub notify: GClosureNotify,
303}
304
305impl ::std::fmt::Debug for GClosureNotifyData {
306    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
307        f.debug_struct(&format!("GClosureNotifyData @ {self:p}"))
308            .field("data", &self.data)
309            .field("notify", &self.notify)
310            .finish()
311    }
312}
313
314#[derive(Copy, Clone)]
315#[repr(C)]
316pub struct GEnumClass {
317    pub g_type_class: GTypeClass,
318    pub minimum: c_int,
319    pub maximum: c_int,
320    pub n_values: c_uint,
321    pub values: *mut GEnumValue,
322}
323
324impl ::std::fmt::Debug for GEnumClass {
325    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
326        f.debug_struct(&format!("GEnumClass @ {self:p}"))
327            .field("g_type_class", &self.g_type_class)
328            .field("minimum", &self.minimum)
329            .field("maximum", &self.maximum)
330            .field("n_values", &self.n_values)
331            .field("values", &self.values)
332            .finish()
333    }
334}
335
336#[derive(Copy, Clone)]
337#[repr(C)]
338pub struct GEnumValue {
339    pub value: c_int,
340    pub value_name: *const c_char,
341    pub value_nick: *const c_char,
342}
343
344impl ::std::fmt::Debug for GEnumValue {
345    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
346        f.debug_struct(&format!("GEnumValue @ {self:p}"))
347            .field("value", &self.value)
348            .field("value_name", &self.value_name)
349            .field("value_nick", &self.value_nick)
350            .finish()
351    }
352}
353
354#[derive(Copy, Clone)]
355#[repr(C)]
356pub struct GFlagsClass {
357    pub g_type_class: GTypeClass,
358    pub mask: c_uint,
359    pub n_values: c_uint,
360    pub values: *mut GFlagsValue,
361}
362
363impl ::std::fmt::Debug for GFlagsClass {
364    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
365        f.debug_struct(&format!("GFlagsClass @ {self:p}"))
366            .field("g_type_class", &self.g_type_class)
367            .field("mask", &self.mask)
368            .field("n_values", &self.n_values)
369            .field("values", &self.values)
370            .finish()
371    }
372}
373
374#[derive(Copy, Clone)]
375#[repr(C)]
376pub struct GFlagsValue {
377    pub value: c_uint,
378    pub value_name: *const c_char,
379    pub value_nick: *const c_char,
380}
381
382impl ::std::fmt::Debug for GFlagsValue {
383    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
384        f.debug_struct(&format!("GFlagsValue @ {self:p}"))
385            .field("value", &self.value)
386            .field("value_name", &self.value_name)
387            .field("value_nick", &self.value_nick)
388            .finish()
389    }
390}
391
392#[derive(Copy, Clone)]
393#[repr(C)]
394pub struct GInitiallyUnownedClass {
395    pub g_type_class: GTypeClass,
396    pub construct_properties: *mut glib::GSList,
397    pub constructor:
398        Option<unsafe extern "C" fn(GType, c_uint, *mut GObjectConstructParam) -> *mut GObject>,
399    pub set_property:
400        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut GValue, *mut GParamSpec)>,
401    pub get_property:
402        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut GValue, *mut GParamSpec)>,
403    pub dispose: Option<unsafe extern "C" fn(*mut GObject)>,
404    pub finalize: Option<unsafe extern "C" fn(*mut GObject)>,
405    pub dispatch_properties_changed:
406        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut *mut GParamSpec)>,
407    pub notify: Option<unsafe extern "C" fn(*mut GObject, *mut GParamSpec)>,
408    pub constructed: Option<unsafe extern "C" fn(*mut GObject)>,
409    pub flags: size_t,
410    pub n_construct_properties: size_t,
411    pub pspecs: gpointer,
412    pub n_pspecs: size_t,
413    pub pdummy: [gpointer; 3],
414}
415
416impl ::std::fmt::Debug for GInitiallyUnownedClass {
417    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
418        f.debug_struct(&format!("GInitiallyUnownedClass @ {self:p}"))
419            .field("g_type_class", &self.g_type_class)
420            .field("constructor", &self.constructor)
421            .field("set_property", &self.set_property)
422            .field("get_property", &self.get_property)
423            .field("dispose", &self.dispose)
424            .field("finalize", &self.finalize)
425            .field(
426                "dispatch_properties_changed",
427                &self.dispatch_properties_changed,
428            )
429            .field("notify", &self.notify)
430            .field("constructed", &self.constructed)
431            .finish()
432    }
433}
434
435#[derive(Copy, Clone)]
436#[repr(C)]
437pub struct GInterfaceInfo {
438    pub interface_init: GInterfaceInitFunc,
439    pub interface_finalize: GInterfaceFinalizeFunc,
440    pub interface_data: gpointer,
441}
442
443impl ::std::fmt::Debug for GInterfaceInfo {
444    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
445        f.debug_struct(&format!("GInterfaceInfo @ {self:p}"))
446            .field("interface_init", &self.interface_init)
447            .field("interface_finalize", &self.interface_finalize)
448            .field("interface_data", &self.interface_data)
449            .finish()
450    }
451}
452
453#[derive(Copy, Clone)]
454#[repr(C)]
455pub struct GObjectClass {
456    pub g_type_class: GTypeClass,
457    pub construct_properties: *mut glib::GSList,
458    pub constructor:
459        Option<unsafe extern "C" fn(GType, c_uint, *mut GObjectConstructParam) -> *mut GObject>,
460    pub set_property:
461        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut GValue, *mut GParamSpec)>,
462    pub get_property:
463        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut GValue, *mut GParamSpec)>,
464    pub dispose: Option<unsafe extern "C" fn(*mut GObject)>,
465    pub finalize: Option<unsafe extern "C" fn(*mut GObject)>,
466    pub dispatch_properties_changed:
467        Option<unsafe extern "C" fn(*mut GObject, c_uint, *mut *mut GParamSpec)>,
468    pub notify: Option<unsafe extern "C" fn(*mut GObject, *mut GParamSpec)>,
469    pub constructed: Option<unsafe extern "C" fn(*mut GObject)>,
470    pub flags: size_t,
471    pub n_construct_properties: size_t,
472    pub pspecs: gpointer,
473    pub n_pspecs: size_t,
474    pub pdummy: [gpointer; 3],
475}
476
477impl ::std::fmt::Debug for GObjectClass {
478    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
479        f.debug_struct(&format!("GObjectClass @ {self:p}"))
480            .field("g_type_class", &self.g_type_class)
481            .field("constructor", &self.constructor)
482            .field("set_property", &self.set_property)
483            .field("get_property", &self.get_property)
484            .field("dispose", &self.dispose)
485            .field("finalize", &self.finalize)
486            .field(
487                "dispatch_properties_changed",
488                &self.dispatch_properties_changed,
489            )
490            .field("notify", &self.notify)
491            .field("constructed", &self.constructed)
492            .finish()
493    }
494}
495
496#[derive(Copy, Clone)]
497#[repr(C)]
498pub struct GObjectConstructParam {
499    pub pspec: *mut GParamSpec,
500    pub value: *mut GValue,
501}
502
503impl ::std::fmt::Debug for GObjectConstructParam {
504    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
505        f.debug_struct(&format!("GObjectConstructParam @ {self:p}"))
506            .field("pspec", &self.pspec)
507            .field("value", &self.value)
508            .finish()
509    }
510}
511
512#[derive(Copy, Clone)]
513#[repr(C)]
514pub struct GParamSpecClass {
515    pub g_type_class: GTypeClass,
516    pub value_type: GType,
517    pub finalize: Option<unsafe extern "C" fn(*mut GParamSpec)>,
518    pub value_set_default: Option<unsafe extern "C" fn(*mut GParamSpec, *mut GValue)>,
519    pub value_validate: Option<unsafe extern "C" fn(*mut GParamSpec, *mut GValue) -> gboolean>,
520    pub values_cmp:
521        Option<unsafe extern "C" fn(*mut GParamSpec, *const GValue, *const GValue) -> c_int>,
522    pub value_is_valid: Option<unsafe extern "C" fn(*mut GParamSpec, *mut GValue) -> gboolean>,
523    pub dummy: [gpointer; 3],
524}
525
526impl ::std::fmt::Debug for GParamSpecClass {
527    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
528        f.debug_struct(&format!("GParamSpecClass @ {self:p}"))
529            .field("g_type_class", &self.g_type_class)
530            .field("value_type", &self.value_type)
531            .field("finalize", &self.finalize)
532            .field("value_set_default", &self.value_set_default)
533            .field("value_validate", &self.value_validate)
534            .field("values_cmp", &self.values_cmp)
535            .field("value_is_valid", &self.value_is_valid)
536            .finish()
537    }
538}
539
540#[repr(C)]
541#[allow(dead_code)]
542pub struct _GParamSpecPool {
543    _data: [u8; 0],
544    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
545}
546
547pub type GParamSpecPool = _GParamSpecPool;
548
549#[derive(Copy, Clone)]
550#[repr(C)]
551pub struct GParamSpecTypeInfo {
552    pub instance_size: u16,
553    pub n_preallocs: u16,
554    pub instance_init: Option<unsafe extern "C" fn(*mut GParamSpec)>,
555    pub value_type: GType,
556    pub finalize: Option<unsafe extern "C" fn(*mut GParamSpec)>,
557    pub value_set_default: Option<unsafe extern "C" fn(*mut GParamSpec, *mut GValue)>,
558    pub value_validate: Option<unsafe extern "C" fn(*mut GParamSpec, *mut GValue) -> gboolean>,
559    pub values_cmp:
560        Option<unsafe extern "C" fn(*mut GParamSpec, *const GValue, *const GValue) -> c_int>,
561}
562
563impl ::std::fmt::Debug for GParamSpecTypeInfo {
564    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
565        f.debug_struct(&format!("GParamSpecTypeInfo @ {self:p}"))
566            .field("instance_size", &self.instance_size)
567            .field("n_preallocs", &self.n_preallocs)
568            .field("instance_init", &self.instance_init)
569            .field("value_type", &self.value_type)
570            .field("finalize", &self.finalize)
571            .field("value_set_default", &self.value_set_default)
572            .field("value_validate", &self.value_validate)
573            .field("values_cmp", &self.values_cmp)
574            .finish()
575    }
576}
577
578#[derive(Copy, Clone)]
579#[repr(C)]
580pub struct GParameter {
581    pub name: *const c_char,
582    pub value: GValue,
583}
584
585impl ::std::fmt::Debug for GParameter {
586    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
587        f.debug_struct(&format!("GParameter @ {self:p}"))
588            .field("name", &self.name)
589            .field("value", &self.value)
590            .finish()
591    }
592}
593
594#[derive(Copy, Clone)]
595#[repr(C)]
596pub struct GSignalInvocationHint {
597    pub signal_id: c_uint,
598    pub detail: glib::GQuark,
599    pub run_type: GSignalFlags,
600}
601
602impl ::std::fmt::Debug for GSignalInvocationHint {
603    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
604        f.debug_struct(&format!("GSignalInvocationHint @ {self:p}"))
605            .field("signal_id", &self.signal_id)
606            .field("detail", &self.detail)
607            .field("run_type", &self.run_type)
608            .finish()
609    }
610}
611
612#[derive(Copy, Clone)]
613#[repr(C)]
614pub struct GSignalQuery {
615    pub signal_id: c_uint,
616    pub signal_name: *const c_char,
617    pub itype: GType,
618    pub signal_flags: GSignalFlags,
619    pub return_type: GType,
620    pub n_params: c_uint,
621    pub param_types: *const GType,
622}
623
624impl ::std::fmt::Debug for GSignalQuery {
625    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
626        f.debug_struct(&format!("GSignalQuery @ {self:p}"))
627            .field("signal_id", &self.signal_id)
628            .field("signal_name", &self.signal_name)
629            .field("itype", &self.itype)
630            .field("signal_flags", &self.signal_flags)
631            .field("return_type", &self.return_type)
632            .field("n_params", &self.n_params)
633            .field("param_types", &self.param_types)
634            .finish()
635    }
636}
637
638#[derive(Copy, Clone)]
639#[repr(C)]
640pub struct GTypeClass {
641    pub g_type: GType,
642}
643
644impl ::std::fmt::Debug for GTypeClass {
645    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
646        f.debug_struct(&format!("GTypeClass @ {self:p}")).finish()
647    }
648}
649
650#[derive(Copy, Clone)]
651#[repr(C)]
652pub struct GTypeFundamentalInfo {
653    pub type_flags: GTypeFundamentalFlags,
654}
655
656impl ::std::fmt::Debug for GTypeFundamentalInfo {
657    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
658        f.debug_struct(&format!("GTypeFundamentalInfo @ {self:p}"))
659            .field("type_flags", &self.type_flags)
660            .finish()
661    }
662}
663
664#[derive(Copy, Clone)]
665#[repr(C)]
666pub struct GTypeInfo {
667    pub class_size: u16,
668    pub base_init: GBaseInitFunc,
669    pub base_finalize: GBaseFinalizeFunc,
670    pub class_init: GClassInitFunc,
671    pub class_finalize: GClassFinalizeFunc,
672    pub class_data: gconstpointer,
673    pub instance_size: u16,
674    pub n_preallocs: u16,
675    pub instance_init: GInstanceInitFunc,
676    pub value_table: *const GTypeValueTable,
677}
678
679impl ::std::fmt::Debug for GTypeInfo {
680    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
681        f.debug_struct(&format!("GTypeInfo @ {self:p}"))
682            .field("class_size", &self.class_size)
683            .field("base_init", &self.base_init)
684            .field("base_finalize", &self.base_finalize)
685            .field("class_init", &self.class_init)
686            .field("class_finalize", &self.class_finalize)
687            .field("class_data", &self.class_data)
688            .field("instance_size", &self.instance_size)
689            .field("n_preallocs", &self.n_preallocs)
690            .field("instance_init", &self.instance_init)
691            .field("value_table", &self.value_table)
692            .finish()
693    }
694}
695
696#[derive(Copy, Clone)]
697#[repr(C)]
698pub struct GTypeInstance {
699    pub g_class: *mut GTypeClass,
700}
701
702impl ::std::fmt::Debug for GTypeInstance {
703    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
704        f.debug_struct(&format!("GTypeInstance @ {self:p}"))
705            .finish()
706    }
707}
708
709#[derive(Copy, Clone)]
710#[repr(C)]
711pub struct GTypeInterface {
712    pub g_type: GType,
713    pub g_instance_type: GType,
714}
715
716impl ::std::fmt::Debug for GTypeInterface {
717    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
718        f.debug_struct(&format!("GTypeInterface @ {self:p}"))
719            .finish()
720    }
721}
722
723#[derive(Copy, Clone)]
724#[repr(C)]
725pub struct GTypeModuleClass {
726    pub parent_class: GObjectClass,
727    pub load: Option<unsafe extern "C" fn(*mut GTypeModule) -> gboolean>,
728    pub unload: Option<unsafe extern "C" fn(*mut GTypeModule)>,
729    pub reserved1: Option<unsafe extern "C" fn()>,
730    pub reserved2: Option<unsafe extern "C" fn()>,
731    pub reserved3: Option<unsafe extern "C" fn()>,
732    pub reserved4: Option<unsafe extern "C" fn()>,
733}
734
735impl ::std::fmt::Debug for GTypeModuleClass {
736    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
737        f.debug_struct(&format!("GTypeModuleClass @ {self:p}"))
738            .field("parent_class", &self.parent_class)
739            .field("load", &self.load)
740            .field("unload", &self.unload)
741            .field("reserved1", &self.reserved1)
742            .field("reserved2", &self.reserved2)
743            .field("reserved3", &self.reserved3)
744            .field("reserved4", &self.reserved4)
745            .finish()
746    }
747}
748
749#[derive(Copy, Clone)]
750#[repr(C)]
751pub struct GTypePluginClass {
752    pub base_iface: GTypeInterface,
753    pub use_plugin: GTypePluginUse,
754    pub unuse_plugin: GTypePluginUnuse,
755    pub complete_type_info: GTypePluginCompleteTypeInfo,
756    pub complete_interface_info: GTypePluginCompleteInterfaceInfo,
757}
758
759impl ::std::fmt::Debug for GTypePluginClass {
760    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
761        f.debug_struct(&format!("GTypePluginClass @ {self:p}"))
762            .field("use_plugin", &self.use_plugin)
763            .field("unuse_plugin", &self.unuse_plugin)
764            .field("complete_type_info", &self.complete_type_info)
765            .field("complete_interface_info", &self.complete_interface_info)
766            .finish()
767    }
768}
769
770#[derive(Copy, Clone)]
771#[repr(C)]
772pub struct GTypeQuery {
773    pub type_: GType,
774    pub type_name: *const c_char,
775    pub class_size: c_uint,
776    pub instance_size: c_uint,
777}
778
779impl ::std::fmt::Debug for GTypeQuery {
780    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
781        f.debug_struct(&format!("GTypeQuery @ {self:p}"))
782            .field("type_", &self.type_)
783            .field("type_name", &self.type_name)
784            .field("class_size", &self.class_size)
785            .field("instance_size", &self.instance_size)
786            .finish()
787    }
788}
789
790#[derive(Copy, Clone)]
791#[repr(C)]
792pub struct GTypeValueTable {
793    pub value_init: GTypeValueInitFunc,
794    pub value_free: GTypeValueFreeFunc,
795    pub value_copy: GTypeValueCopyFunc,
796    pub value_peek_pointer: GTypeValuePeekPointerFunc,
797    pub collect_format: *const c_char,
798    pub collect_value: GTypeValueCollectFunc,
799    pub lcopy_format: *const c_char,
800    pub lcopy_value: GTypeValueLCopyFunc,
801}
802
803impl ::std::fmt::Debug for GTypeValueTable {
804    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
805        f.debug_struct(&format!("GTypeValueTable @ {self:p}"))
806            .field("value_init", &self.value_init)
807            .field("value_free", &self.value_free)
808            .field("value_copy", &self.value_copy)
809            .field("value_peek_pointer", &self.value_peek_pointer)
810            .field("collect_format", &self.collect_format)
811            .field("collect_value", &self.collect_value)
812            .field("lcopy_format", &self.lcopy_format)
813            .field("lcopy_value", &self.lcopy_value)
814            .finish()
815    }
816}
817
818#[derive(Copy, Clone)]
819#[repr(C)]
820pub struct GValue {
821    pub g_type: GType,
822    pub data: [GValue_data; 2],
823}
824
825impl ::std::fmt::Debug for GValue {
826    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
827        f.debug_struct(&format!("GValue @ {self:p}"))
828            .field("data", &self.data)
829            .finish()
830    }
831}
832
833#[derive(Copy, Clone)]
834#[repr(C)]
835pub struct GValueArray {
836    pub n_values: c_uint,
837    pub values: *mut GValue,
838    pub n_prealloced: c_uint,
839}
840
841impl ::std::fmt::Debug for GValueArray {
842    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
843        f.debug_struct(&format!("GValueArray @ {self:p}"))
844            .field("n_values", &self.n_values)
845            .field("values", &self.values)
846            .finish()
847    }
848}
849
850#[derive(Copy, Clone)]
851#[repr(C)]
852pub struct GWeakRef {
853    pub priv_: GWeakRef_priv,
854}
855
856impl ::std::fmt::Debug for GWeakRef {
857    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
858        f.debug_struct(&format!("GWeakRef @ {self:p}"))
859            .field("priv_", &self.priv_)
860            .finish()
861    }
862}
863
864// Classes
865#[repr(C)]
866#[allow(dead_code)]
867pub struct GBinding {
868    _data: [u8; 0],
869    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
870}
871
872impl ::std::fmt::Debug for GBinding {
873    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
874        f.debug_struct(&format!("GBinding @ {self:p}")).finish()
875    }
876}
877
878#[repr(C)]
879#[allow(dead_code)]
880pub struct GBindingGroup {
881    _data: [u8; 0],
882    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
883}
884
885impl ::std::fmt::Debug for GBindingGroup {
886    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
887        f.debug_struct(&format!("GBindingGroup @ {self:p}"))
888            .finish()
889    }
890}
891
892#[derive(Copy, Clone)]
893#[repr(C)]
894pub struct GInitiallyUnowned {
895    pub g_type_instance: GTypeInstance,
896    pub ref_count: c_uint,
897    pub qdata: *mut glib::GData,
898}
899
900impl ::std::fmt::Debug for GInitiallyUnowned {
901    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
902        f.debug_struct(&format!("GInitiallyUnowned @ {self:p}"))
903            .field("g_type_instance", &self.g_type_instance)
904            .finish()
905    }
906}
907
908#[derive(Copy, Clone)]
909#[repr(C)]
910pub struct GObject {
911    pub g_type_instance: GTypeInstance,
912    pub ref_count: c_uint,
913    pub qdata: *mut glib::GData,
914}
915
916impl ::std::fmt::Debug for GObject {
917    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
918        f.debug_struct(&format!("GObject @ {self:p}"))
919            .field("g_type_instance", &self.g_type_instance)
920            .finish()
921    }
922}
923
924#[derive(Copy, Clone)]
925#[repr(C)]
926pub struct GParamSpec {
927    pub g_type_instance: GTypeInstance,
928    pub name: *const c_char,
929    pub flags: GParamFlags,
930    pub value_type: GType,
931    pub owner_type: GType,
932    pub _nick: *mut c_char,
933    pub _blurb: *mut c_char,
934    pub qdata: *mut glib::GData,
935    pub ref_count: c_uint,
936    pub param_id: c_uint,
937}
938
939impl ::std::fmt::Debug for GParamSpec {
940    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
941        f.debug_struct(&format!("GParamSpec @ {self:p}"))
942            .field("g_type_instance", &self.g_type_instance)
943            .field("name", &self.name)
944            .field("flags", &self.flags)
945            .field("value_type", &self.value_type)
946            .field("owner_type", &self.owner_type)
947            .finish()
948    }
949}
950
951#[derive(Copy, Clone)]
952#[repr(C)]
953pub struct GParamSpecBoolean {
954    pub parent_instance: GParamSpec,
955    pub default_value: gboolean,
956}
957
958impl ::std::fmt::Debug for GParamSpecBoolean {
959    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
960        f.debug_struct(&format!("GParamSpecBoolean @ {self:p}"))
961            .field("parent_instance", &self.parent_instance)
962            .field("default_value", &self.default_value)
963            .finish()
964    }
965}
966
967#[derive(Copy, Clone)]
968#[repr(C)]
969pub struct GParamSpecBoxed {
970    pub parent_instance: GParamSpec,
971}
972
973impl ::std::fmt::Debug for GParamSpecBoxed {
974    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
975        f.debug_struct(&format!("GParamSpecBoxed @ {self:p}"))
976            .field("parent_instance", &self.parent_instance)
977            .finish()
978    }
979}
980
981#[derive(Copy, Clone)]
982#[repr(C)]
983pub struct GParamSpecChar {
984    pub parent_instance: GParamSpec,
985    pub minimum: i8,
986    pub maximum: i8,
987    pub default_value: i8,
988}
989
990impl ::std::fmt::Debug for GParamSpecChar {
991    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
992        f.debug_struct(&format!("GParamSpecChar @ {self:p}"))
993            .field("parent_instance", &self.parent_instance)
994            .field("minimum", &self.minimum)
995            .field("maximum", &self.maximum)
996            .field("default_value", &self.default_value)
997            .finish()
998    }
999}
1000
1001#[derive(Copy, Clone)]
1002#[repr(C)]
1003pub struct GParamSpecDouble {
1004    pub parent_instance: GParamSpec,
1005    pub minimum: c_double,
1006    pub maximum: c_double,
1007    pub default_value: c_double,
1008    pub epsilon: c_double,
1009}
1010
1011impl ::std::fmt::Debug for GParamSpecDouble {
1012    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1013        f.debug_struct(&format!("GParamSpecDouble @ {self:p}"))
1014            .field("parent_instance", &self.parent_instance)
1015            .field("minimum", &self.minimum)
1016            .field("maximum", &self.maximum)
1017            .field("default_value", &self.default_value)
1018            .field("epsilon", &self.epsilon)
1019            .finish()
1020    }
1021}
1022
1023#[derive(Copy, Clone)]
1024#[repr(C)]
1025pub struct GParamSpecEnum {
1026    pub parent_instance: GParamSpec,
1027    pub enum_class: *mut GEnumClass,
1028    pub default_value: c_int,
1029}
1030
1031impl ::std::fmt::Debug for GParamSpecEnum {
1032    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1033        f.debug_struct(&format!("GParamSpecEnum @ {self:p}"))
1034            .field("parent_instance", &self.parent_instance)
1035            .field("enum_class", &self.enum_class)
1036            .field("default_value", &self.default_value)
1037            .finish()
1038    }
1039}
1040
1041#[derive(Copy, Clone)]
1042#[repr(C)]
1043pub struct GParamSpecFlags {
1044    pub parent_instance: GParamSpec,
1045    pub flags_class: *mut GFlagsClass,
1046    pub default_value: c_uint,
1047}
1048
1049impl ::std::fmt::Debug for GParamSpecFlags {
1050    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1051        f.debug_struct(&format!("GParamSpecFlags @ {self:p}"))
1052            .field("parent_instance", &self.parent_instance)
1053            .field("flags_class", &self.flags_class)
1054            .field("default_value", &self.default_value)
1055            .finish()
1056    }
1057}
1058
1059#[derive(Copy, Clone)]
1060#[repr(C)]
1061pub struct GParamSpecFloat {
1062    pub parent_instance: GParamSpec,
1063    pub minimum: c_float,
1064    pub maximum: c_float,
1065    pub default_value: c_float,
1066    pub epsilon: c_float,
1067}
1068
1069impl ::std::fmt::Debug for GParamSpecFloat {
1070    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1071        f.debug_struct(&format!("GParamSpecFloat @ {self:p}"))
1072            .field("parent_instance", &self.parent_instance)
1073            .field("minimum", &self.minimum)
1074            .field("maximum", &self.maximum)
1075            .field("default_value", &self.default_value)
1076            .field("epsilon", &self.epsilon)
1077            .finish()
1078    }
1079}
1080
1081#[derive(Copy, Clone)]
1082#[repr(C)]
1083pub struct GParamSpecGType {
1084    pub parent_instance: GParamSpec,
1085    pub is_a_type: GType,
1086}
1087
1088impl ::std::fmt::Debug for GParamSpecGType {
1089    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1090        f.debug_struct(&format!("GParamSpecGType @ {self:p}"))
1091            .field("parent_instance", &self.parent_instance)
1092            .field("is_a_type", &self.is_a_type)
1093            .finish()
1094    }
1095}
1096
1097#[derive(Copy, Clone)]
1098#[repr(C)]
1099pub struct GParamSpecInt {
1100    pub parent_instance: GParamSpec,
1101    pub minimum: c_int,
1102    pub maximum: c_int,
1103    pub default_value: c_int,
1104}
1105
1106impl ::std::fmt::Debug for GParamSpecInt {
1107    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1108        f.debug_struct(&format!("GParamSpecInt @ {self:p}"))
1109            .field("parent_instance", &self.parent_instance)
1110            .field("minimum", &self.minimum)
1111            .field("maximum", &self.maximum)
1112            .field("default_value", &self.default_value)
1113            .finish()
1114    }
1115}
1116
1117#[derive(Copy, Clone)]
1118#[repr(C)]
1119pub struct GParamSpecInt64 {
1120    pub parent_instance: GParamSpec,
1121    pub minimum: i64,
1122    pub maximum: i64,
1123    pub default_value: i64,
1124}
1125
1126impl ::std::fmt::Debug for GParamSpecInt64 {
1127    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1128        f.debug_struct(&format!("GParamSpecInt64 @ {self:p}"))
1129            .field("parent_instance", &self.parent_instance)
1130            .field("minimum", &self.minimum)
1131            .field("maximum", &self.maximum)
1132            .field("default_value", &self.default_value)
1133            .finish()
1134    }
1135}
1136
1137#[derive(Copy, Clone)]
1138#[repr(C)]
1139pub struct GParamSpecLong {
1140    pub parent_instance: GParamSpec,
1141    pub minimum: c_long,
1142    pub maximum: c_long,
1143    pub default_value: c_long,
1144}
1145
1146impl ::std::fmt::Debug for GParamSpecLong {
1147    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1148        f.debug_struct(&format!("GParamSpecLong @ {self:p}"))
1149            .field("parent_instance", &self.parent_instance)
1150            .field("minimum", &self.minimum)
1151            .field("maximum", &self.maximum)
1152            .field("default_value", &self.default_value)
1153            .finish()
1154    }
1155}
1156
1157#[derive(Copy, Clone)]
1158#[repr(C)]
1159pub struct GParamSpecObject {
1160    pub parent_instance: GParamSpec,
1161}
1162
1163impl ::std::fmt::Debug for GParamSpecObject {
1164    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1165        f.debug_struct(&format!("GParamSpecObject @ {self:p}"))
1166            .field("parent_instance", &self.parent_instance)
1167            .finish()
1168    }
1169}
1170
1171#[derive(Copy, Clone)]
1172#[repr(C)]
1173pub struct GParamSpecOverride {
1174    pub parent_instance: GParamSpec,
1175    pub overridden: *mut GParamSpec,
1176}
1177
1178impl ::std::fmt::Debug for GParamSpecOverride {
1179    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1180        f.debug_struct(&format!("GParamSpecOverride @ {self:p}"))
1181            .finish()
1182    }
1183}
1184
1185#[derive(Copy, Clone)]
1186#[repr(C)]
1187pub struct GParamSpecParam {
1188    pub parent_instance: GParamSpec,
1189}
1190
1191impl ::std::fmt::Debug for GParamSpecParam {
1192    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1193        f.debug_struct(&format!("GParamSpecParam @ {self:p}"))
1194            .field("parent_instance", &self.parent_instance)
1195            .finish()
1196    }
1197}
1198
1199#[derive(Copy, Clone)]
1200#[repr(C)]
1201pub struct GParamSpecPointer {
1202    pub parent_instance: GParamSpec,
1203}
1204
1205impl ::std::fmt::Debug for GParamSpecPointer {
1206    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1207        f.debug_struct(&format!("GParamSpecPointer @ {self:p}"))
1208            .field("parent_instance", &self.parent_instance)
1209            .finish()
1210    }
1211}
1212
1213#[repr(C)]
1214#[allow(dead_code)]
1215pub struct GParamSpecString {
1216    pub parent_instance: GParamSpec,
1217    pub default_value: *mut c_char,
1218    pub cset_first: *mut c_char,
1219    pub cset_nth: *mut c_char,
1220    pub substitutor: c_char,
1221    pub null_fold_if_empty: c_uint,
1222    _truncated_record_marker: c_void,
1223    // field ensure_non_null has incomplete type
1224}
1225
1226impl ::std::fmt::Debug for GParamSpecString {
1227    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1228        f.debug_struct(&format!("GParamSpecString @ {self:p}"))
1229            .field("parent_instance", &self.parent_instance)
1230            .field("default_value", &self.default_value)
1231            .field("cset_first", &self.cset_first)
1232            .field("cset_nth", &self.cset_nth)
1233            .field("substitutor", &self.substitutor)
1234            .field("null_fold_if_empty", &self.null_fold_if_empty)
1235            .finish()
1236    }
1237}
1238
1239#[derive(Copy, Clone)]
1240#[repr(C)]
1241pub struct GParamSpecUChar {
1242    pub parent_instance: GParamSpec,
1243    pub minimum: u8,
1244    pub maximum: u8,
1245    pub default_value: u8,
1246}
1247
1248impl ::std::fmt::Debug for GParamSpecUChar {
1249    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1250        f.debug_struct(&format!("GParamSpecUChar @ {self:p}"))
1251            .field("parent_instance", &self.parent_instance)
1252            .field("minimum", &self.minimum)
1253            .field("maximum", &self.maximum)
1254            .field("default_value", &self.default_value)
1255            .finish()
1256    }
1257}
1258
1259#[derive(Copy, Clone)]
1260#[repr(C)]
1261pub struct GParamSpecUInt {
1262    pub parent_instance: GParamSpec,
1263    pub minimum: c_uint,
1264    pub maximum: c_uint,
1265    pub default_value: c_uint,
1266}
1267
1268impl ::std::fmt::Debug for GParamSpecUInt {
1269    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1270        f.debug_struct(&format!("GParamSpecUInt @ {self:p}"))
1271            .field("parent_instance", &self.parent_instance)
1272            .field("minimum", &self.minimum)
1273            .field("maximum", &self.maximum)
1274            .field("default_value", &self.default_value)
1275            .finish()
1276    }
1277}
1278
1279#[derive(Copy, Clone)]
1280#[repr(C)]
1281pub struct GParamSpecUInt64 {
1282    pub parent_instance: GParamSpec,
1283    pub minimum: u64,
1284    pub maximum: u64,
1285    pub default_value: u64,
1286}
1287
1288impl ::std::fmt::Debug for GParamSpecUInt64 {
1289    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1290        f.debug_struct(&format!("GParamSpecUInt64 @ {self:p}"))
1291            .field("parent_instance", &self.parent_instance)
1292            .field("minimum", &self.minimum)
1293            .field("maximum", &self.maximum)
1294            .field("default_value", &self.default_value)
1295            .finish()
1296    }
1297}
1298
1299#[derive(Copy, Clone)]
1300#[repr(C)]
1301pub struct GParamSpecULong {
1302    pub parent_instance: GParamSpec,
1303    pub minimum: c_ulong,
1304    pub maximum: c_ulong,
1305    pub default_value: c_ulong,
1306}
1307
1308impl ::std::fmt::Debug for GParamSpecULong {
1309    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1310        f.debug_struct(&format!("GParamSpecULong @ {self:p}"))
1311            .field("parent_instance", &self.parent_instance)
1312            .field("minimum", &self.minimum)
1313            .field("maximum", &self.maximum)
1314            .field("default_value", &self.default_value)
1315            .finish()
1316    }
1317}
1318
1319#[derive(Copy, Clone)]
1320#[repr(C)]
1321pub struct GParamSpecUnichar {
1322    pub parent_instance: GParamSpec,
1323    pub default_value: u32,
1324}
1325
1326impl ::std::fmt::Debug for GParamSpecUnichar {
1327    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1328        f.debug_struct(&format!("GParamSpecUnichar @ {self:p}"))
1329            .field("parent_instance", &self.parent_instance)
1330            .field("default_value", &self.default_value)
1331            .finish()
1332    }
1333}
1334
1335#[derive(Copy, Clone)]
1336#[repr(C)]
1337pub struct GParamSpecValueArray {
1338    pub parent_instance: GParamSpec,
1339    pub element_spec: *mut GParamSpec,
1340    pub fixed_n_elements: c_uint,
1341}
1342
1343impl ::std::fmt::Debug for GParamSpecValueArray {
1344    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1345        f.debug_struct(&format!("GParamSpecValueArray @ {self:p}"))
1346            .field("parent_instance", &self.parent_instance)
1347            .field("element_spec", &self.element_spec)
1348            .field("fixed_n_elements", &self.fixed_n_elements)
1349            .finish()
1350    }
1351}
1352
1353#[derive(Copy, Clone)]
1354#[repr(C)]
1355pub struct GParamSpecVariant {
1356    pub parent_instance: GParamSpec,
1357    pub type_: *mut glib::GVariantType,
1358    pub default_value: *mut glib::GVariant,
1359    pub padding: [gpointer; 4],
1360}
1361
1362impl ::std::fmt::Debug for GParamSpecVariant {
1363    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1364        f.debug_struct(&format!("GParamSpecVariant @ {self:p}"))
1365            .field("parent_instance", &self.parent_instance)
1366            .field("type_", &self.type_)
1367            .field("default_value", &self.default_value)
1368            .finish()
1369    }
1370}
1371
1372#[repr(C)]
1373#[allow(dead_code)]
1374pub struct GSignalGroup {
1375    _data: [u8; 0],
1376    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1377}
1378
1379impl ::std::fmt::Debug for GSignalGroup {
1380    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1381        f.debug_struct(&format!("GSignalGroup @ {self:p}")).finish()
1382    }
1383}
1384
1385#[derive(Copy, Clone)]
1386#[repr(C)]
1387pub struct GTypeModule {
1388    pub parent_instance: GObject,
1389    pub use_count: c_uint,
1390    pub type_infos: *mut glib::GSList,
1391    pub interface_infos: *mut glib::GSList,
1392    pub name: *mut c_char,
1393}
1394
1395impl ::std::fmt::Debug for GTypeModule {
1396    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1397        f.debug_struct(&format!("GTypeModule @ {self:p}"))
1398            .field("parent_instance", &self.parent_instance)
1399            .field("use_count", &self.use_count)
1400            .field("type_infos", &self.type_infos)
1401            .field("interface_infos", &self.interface_infos)
1402            .field("name", &self.name)
1403            .finish()
1404    }
1405}
1406
1407// Interfaces
1408#[repr(C)]
1409#[allow(dead_code)]
1410pub struct GTypePlugin {
1411    _data: [u8; 0],
1412    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1413}
1414
1415impl ::std::fmt::Debug for GTypePlugin {
1416    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1417        write!(f, "GTypePlugin @ {self:p}")
1418    }
1419}
1420
1421extern "C" {
1422
1423    //=========================================================================
1424    // GBindingFlags
1425    //=========================================================================
1426    pub fn g_binding_flags_get_type() -> GType;
1427
1428    //=========================================================================
1429    // GIOCondition
1430    //=========================================================================
1431    pub fn g_io_condition_get_type() -> GType;
1432
1433    //=========================================================================
1434    // GCClosure
1435    //=========================================================================
1436    pub fn g_cclosure_marshal_BOOLEAN__BOXED_BOXED(
1437        closure: *mut GClosure,
1438        return_value: *mut GValue,
1439        n_param_values: c_uint,
1440        param_values: *const GValue,
1441        invocation_hint: gpointer,
1442        marshal_data: gpointer,
1443    );
1444    //pub fn g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1445    pub fn g_cclosure_marshal_BOOLEAN__FLAGS(
1446        closure: *mut GClosure,
1447        return_value: *mut GValue,
1448        n_param_values: c_uint,
1449        param_values: *const GValue,
1450        invocation_hint: gpointer,
1451        marshal_data: gpointer,
1452    );
1453    //pub fn g_cclosure_marshal_BOOLEAN__FLAGSv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1454    pub fn g_cclosure_marshal_STRING__OBJECT_POINTER(
1455        closure: *mut GClosure,
1456        return_value: *mut GValue,
1457        n_param_values: c_uint,
1458        param_values: *const GValue,
1459        invocation_hint: gpointer,
1460        marshal_data: gpointer,
1461    );
1462    //pub fn g_cclosure_marshal_STRING__OBJECT_POINTERv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1463    pub fn g_cclosure_marshal_VOID__BOOLEAN(
1464        closure: *mut GClosure,
1465        return_value: *mut GValue,
1466        n_param_values: c_uint,
1467        param_values: *const GValue,
1468        invocation_hint: gpointer,
1469        marshal_data: gpointer,
1470    );
1471    //pub fn g_cclosure_marshal_VOID__BOOLEANv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1472    pub fn g_cclosure_marshal_VOID__BOXED(
1473        closure: *mut GClosure,
1474        return_value: *mut GValue,
1475        n_param_values: c_uint,
1476        param_values: *const GValue,
1477        invocation_hint: gpointer,
1478        marshal_data: gpointer,
1479    );
1480    //pub fn g_cclosure_marshal_VOID__BOXEDv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1481    pub fn g_cclosure_marshal_VOID__CHAR(
1482        closure: *mut GClosure,
1483        return_value: *mut GValue,
1484        n_param_values: c_uint,
1485        param_values: *const GValue,
1486        invocation_hint: gpointer,
1487        marshal_data: gpointer,
1488    );
1489    //pub fn g_cclosure_marshal_VOID__CHARv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1490    pub fn g_cclosure_marshal_VOID__DOUBLE(
1491        closure: *mut GClosure,
1492        return_value: *mut GValue,
1493        n_param_values: c_uint,
1494        param_values: *const GValue,
1495        invocation_hint: gpointer,
1496        marshal_data: gpointer,
1497    );
1498    //pub fn g_cclosure_marshal_VOID__DOUBLEv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1499    pub fn g_cclosure_marshal_VOID__ENUM(
1500        closure: *mut GClosure,
1501        return_value: *mut GValue,
1502        n_param_values: c_uint,
1503        param_values: *const GValue,
1504        invocation_hint: gpointer,
1505        marshal_data: gpointer,
1506    );
1507    //pub fn g_cclosure_marshal_VOID__ENUMv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1508    pub fn g_cclosure_marshal_VOID__FLAGS(
1509        closure: *mut GClosure,
1510        return_value: *mut GValue,
1511        n_param_values: c_uint,
1512        param_values: *const GValue,
1513        invocation_hint: gpointer,
1514        marshal_data: gpointer,
1515    );
1516    //pub fn g_cclosure_marshal_VOID__FLAGSv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1517    pub fn g_cclosure_marshal_VOID__FLOAT(
1518        closure: *mut GClosure,
1519        return_value: *mut GValue,
1520        n_param_values: c_uint,
1521        param_values: *const GValue,
1522        invocation_hint: gpointer,
1523        marshal_data: gpointer,
1524    );
1525    //pub fn g_cclosure_marshal_VOID__FLOATv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1526    pub fn g_cclosure_marshal_VOID__INT(
1527        closure: *mut GClosure,
1528        return_value: *mut GValue,
1529        n_param_values: c_uint,
1530        param_values: *const GValue,
1531        invocation_hint: gpointer,
1532        marshal_data: gpointer,
1533    );
1534    //pub fn g_cclosure_marshal_VOID__INTv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1535    pub fn g_cclosure_marshal_VOID__LONG(
1536        closure: *mut GClosure,
1537        return_value: *mut GValue,
1538        n_param_values: c_uint,
1539        param_values: *const GValue,
1540        invocation_hint: gpointer,
1541        marshal_data: gpointer,
1542    );
1543    //pub fn g_cclosure_marshal_VOID__LONGv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1544    pub fn g_cclosure_marshal_VOID__OBJECT(
1545        closure: *mut GClosure,
1546        return_value: *mut GValue,
1547        n_param_values: c_uint,
1548        param_values: *const GValue,
1549        invocation_hint: gpointer,
1550        marshal_data: gpointer,
1551    );
1552    //pub fn g_cclosure_marshal_VOID__OBJECTv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1553    pub fn g_cclosure_marshal_VOID__PARAM(
1554        closure: *mut GClosure,
1555        return_value: *mut GValue,
1556        n_param_values: c_uint,
1557        param_values: *const GValue,
1558        invocation_hint: gpointer,
1559        marshal_data: gpointer,
1560    );
1561    //pub fn g_cclosure_marshal_VOID__PARAMv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1562    pub fn g_cclosure_marshal_VOID__POINTER(
1563        closure: *mut GClosure,
1564        return_value: *mut GValue,
1565        n_param_values: c_uint,
1566        param_values: *const GValue,
1567        invocation_hint: gpointer,
1568        marshal_data: gpointer,
1569    );
1570    //pub fn g_cclosure_marshal_VOID__POINTERv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1571    pub fn g_cclosure_marshal_VOID__STRING(
1572        closure: *mut GClosure,
1573        return_value: *mut GValue,
1574        n_param_values: c_uint,
1575        param_values: *const GValue,
1576        invocation_hint: gpointer,
1577        marshal_data: gpointer,
1578    );
1579    //pub fn g_cclosure_marshal_VOID__STRINGv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1580    pub fn g_cclosure_marshal_VOID__UCHAR(
1581        closure: *mut GClosure,
1582        return_value: *mut GValue,
1583        n_param_values: c_uint,
1584        param_values: *const GValue,
1585        invocation_hint: gpointer,
1586        marshal_data: gpointer,
1587    );
1588    //pub fn g_cclosure_marshal_VOID__UCHARv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1589    pub fn g_cclosure_marshal_VOID__UINT(
1590        closure: *mut GClosure,
1591        return_value: *mut GValue,
1592        n_param_values: c_uint,
1593        param_values: *const GValue,
1594        invocation_hint: gpointer,
1595        marshal_data: gpointer,
1596    );
1597    pub fn g_cclosure_marshal_VOID__UINT_POINTER(
1598        closure: *mut GClosure,
1599        return_value: *mut GValue,
1600        n_param_values: c_uint,
1601        param_values: *const GValue,
1602        invocation_hint: gpointer,
1603        marshal_data: gpointer,
1604    );
1605    //pub fn g_cclosure_marshal_VOID__UINT_POINTERv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1606    //pub fn g_cclosure_marshal_VOID__UINTv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1607    pub fn g_cclosure_marshal_VOID__ULONG(
1608        closure: *mut GClosure,
1609        return_value: *mut GValue,
1610        n_param_values: c_uint,
1611        param_values: *const GValue,
1612        invocation_hint: gpointer,
1613        marshal_data: gpointer,
1614    );
1615    //pub fn g_cclosure_marshal_VOID__ULONGv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1616    pub fn g_cclosure_marshal_VOID__VARIANT(
1617        closure: *mut GClosure,
1618        return_value: *mut GValue,
1619        n_param_values: c_uint,
1620        param_values: *const GValue,
1621        invocation_hint: gpointer,
1622        marshal_data: gpointer,
1623    );
1624    //pub fn g_cclosure_marshal_VOID__VARIANTv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1625    pub fn g_cclosure_marshal_VOID__VOID(
1626        closure: *mut GClosure,
1627        return_value: *mut GValue,
1628        n_param_values: c_uint,
1629        param_values: *const GValue,
1630        invocation_hint: gpointer,
1631        marshal_data: gpointer,
1632    );
1633    //pub fn g_cclosure_marshal_VOID__VOIDv(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1634    pub fn g_cclosure_marshal_generic(
1635        closure: *mut GClosure,
1636        return_gvalue: *mut GValue,
1637        n_param_values: c_uint,
1638        param_values: *const GValue,
1639        invocation_hint: gpointer,
1640        marshal_data: gpointer,
1641    );
1642    //pub fn g_cclosure_marshal_generic_va(closure: *mut GClosure, return_value: *mut GValue, instance: gpointer, args_list: /*Unimplemented*/va_list, marshal_data: gpointer, n_params: c_int, param_types: *mut GType);
1643    pub fn g_cclosure_new(
1644        callback_func: GCallback,
1645        user_data: gpointer,
1646        destroy_data: GClosureNotify,
1647    ) -> *mut GClosure;
1648    pub fn g_cclosure_new_object(callback_func: GCallback, object: *mut GObject) -> *mut GClosure;
1649    pub fn g_cclosure_new_object_swap(
1650        callback_func: GCallback,
1651        object: *mut GObject,
1652    ) -> *mut GClosure;
1653    pub fn g_cclosure_new_swap(
1654        callback_func: GCallback,
1655        user_data: gpointer,
1656        destroy_data: GClosureNotify,
1657    ) -> *mut GClosure;
1658
1659    //=========================================================================
1660    // GClosure
1661    //=========================================================================
1662    pub fn g_closure_get_type() -> GType;
1663    pub fn g_closure_new_object(sizeof_closure: c_uint, object: *mut GObject) -> *mut GClosure;
1664    pub fn g_closure_new_simple(sizeof_closure: c_uint, data: gpointer) -> *mut GClosure;
1665    pub fn g_closure_add_finalize_notifier(
1666        closure: *mut GClosure,
1667        notify_data: gpointer,
1668        notify_func: GClosureNotify,
1669    );
1670    pub fn g_closure_add_invalidate_notifier(
1671        closure: *mut GClosure,
1672        notify_data: gpointer,
1673        notify_func: GClosureNotify,
1674    );
1675    pub fn g_closure_add_marshal_guards(
1676        closure: *mut GClosure,
1677        pre_marshal_data: gpointer,
1678        pre_marshal_notify: GClosureNotify,
1679        post_marshal_data: gpointer,
1680        post_marshal_notify: GClosureNotify,
1681    );
1682    pub fn g_closure_invalidate(closure: *mut GClosure);
1683    pub fn g_closure_invoke(
1684        closure: *mut GClosure,
1685        return_value: *mut GValue,
1686        n_param_values: c_uint,
1687        param_values: *const GValue,
1688        invocation_hint: gpointer,
1689    );
1690    pub fn g_closure_ref(closure: *mut GClosure) -> *mut GClosure;
1691    pub fn g_closure_remove_finalize_notifier(
1692        closure: *mut GClosure,
1693        notify_data: gpointer,
1694        notify_func: GClosureNotify,
1695    );
1696    pub fn g_closure_remove_invalidate_notifier(
1697        closure: *mut GClosure,
1698        notify_data: gpointer,
1699        notify_func: GClosureNotify,
1700    );
1701    pub fn g_closure_set_marshal(closure: *mut GClosure, marshal: GClosureMarshal);
1702    pub fn g_closure_set_meta_marshal(
1703        closure: *mut GClosure,
1704        marshal_data: gpointer,
1705        meta_marshal: GClosureMarshal,
1706    );
1707    pub fn g_closure_sink(closure: *mut GClosure);
1708    pub fn g_closure_unref(closure: *mut GClosure);
1709
1710    //=========================================================================
1711    // GObjectClass
1712    //=========================================================================
1713    pub fn g_object_class_find_property(
1714        oclass: *mut GObjectClass,
1715        property_name: *const c_char,
1716    ) -> *mut GParamSpec;
1717    pub fn g_object_class_install_properties(
1718        oclass: *mut GObjectClass,
1719        n_pspecs: c_uint,
1720        pspecs: *mut *mut GParamSpec,
1721    );
1722    pub fn g_object_class_install_property(
1723        oclass: *mut GObjectClass,
1724        property_id: c_uint,
1725        pspec: *mut GParamSpec,
1726    );
1727    pub fn g_object_class_list_properties(
1728        oclass: *mut GObjectClass,
1729        n_properties: *mut c_uint,
1730    ) -> *mut *mut GParamSpec;
1731    pub fn g_object_class_override_property(
1732        oclass: *mut GObjectClass,
1733        property_id: c_uint,
1734        name: *const c_char,
1735    );
1736
1737    //=========================================================================
1738    // GParamSpecPool
1739    //=========================================================================
1740    #[cfg(feature = "v2_80")]
1741    #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1742    pub fn g_param_spec_pool_free(pool: *mut GParamSpecPool);
1743    pub fn g_param_spec_pool_insert(
1744        pool: *mut GParamSpecPool,
1745        pspec: *mut GParamSpec,
1746        owner_type: GType,
1747    );
1748    pub fn g_param_spec_pool_list(
1749        pool: *mut GParamSpecPool,
1750        owner_type: GType,
1751        n_pspecs_p: *mut c_uint,
1752    ) -> *mut *mut GParamSpec;
1753    pub fn g_param_spec_pool_list_owned(
1754        pool: *mut GParamSpecPool,
1755        owner_type: GType,
1756    ) -> *mut glib::GList;
1757    pub fn g_param_spec_pool_lookup(
1758        pool: *mut GParamSpecPool,
1759        param_name: *const c_char,
1760        owner_type: GType,
1761        walk_ancestors: gboolean,
1762    ) -> *mut GParamSpec;
1763    pub fn g_param_spec_pool_remove(pool: *mut GParamSpecPool, pspec: *mut GParamSpec);
1764    pub fn g_param_spec_pool_new(type_prefixing: gboolean) -> *mut GParamSpecPool;
1765
1766    //=========================================================================
1767    // GTypeClass
1768    //=========================================================================
1769    pub fn g_type_class_add_private(g_class: gpointer, private_size: size_t);
1770    pub fn g_type_class_get_instance_private_offset(g_class: gpointer) -> c_int;
1771    pub fn g_type_class_get_private(klass: *mut GTypeClass, private_type: GType) -> gpointer;
1772    pub fn g_type_class_peek_parent(g_class: gpointer) -> gpointer;
1773    pub fn g_type_class_unref(g_class: gpointer);
1774    pub fn g_type_class_unref_uncached(g_class: gpointer);
1775    pub fn g_type_class_adjust_private_offset(
1776        g_class: gpointer,
1777        private_size_or_offset: *mut c_int,
1778    );
1779    #[cfg(feature = "v2_84")]
1780    #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1781    pub fn g_type_class_get(type_: GType) -> gpointer;
1782    pub fn g_type_class_peek(type_: GType) -> gpointer;
1783    pub fn g_type_class_peek_static(type_: GType) -> gpointer;
1784    pub fn g_type_class_ref(type_: GType) -> gpointer;
1785
1786    //=========================================================================
1787    // GTypeInstance
1788    //=========================================================================
1789    pub fn g_type_instance_get_private(
1790        instance: *mut GTypeInstance,
1791        private_type: GType,
1792    ) -> gpointer;
1793
1794    //=========================================================================
1795    // GTypeInterface
1796    //=========================================================================
1797    pub fn g_type_interface_peek_parent(g_iface: gpointer) -> gpointer;
1798    pub fn g_type_interface_add_prerequisite(interface_type: GType, prerequisite_type: GType);
1799    pub fn g_type_interface_get_plugin(
1800        instance_type: GType,
1801        interface_type: GType,
1802    ) -> *mut GTypePlugin;
1803    #[cfg(feature = "v2_68")]
1804    #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
1805    pub fn g_type_interface_instantiatable_prerequisite(interface_type: GType) -> GType;
1806    pub fn g_type_interface_peek(instance_class: gpointer, iface_type: GType) -> gpointer;
1807    pub fn g_type_interface_prerequisites(
1808        interface_type: GType,
1809        n_prerequisites: *mut c_uint,
1810    ) -> *mut GType;
1811
1812    //=========================================================================
1813    // GTypeValueTable
1814    //=========================================================================
1815    pub fn g_type_value_table_peek(type_: GType) -> *mut GTypeValueTable;
1816
1817    //=========================================================================
1818    // GValue
1819    //=========================================================================
1820    pub fn g_value_get_type() -> GType;
1821    pub fn g_value_copy(src_value: *const GValue, dest_value: *mut GValue);
1822    pub fn g_value_dup_boxed(value: *const GValue) -> gpointer;
1823    pub fn g_value_dup_object(value: *const GValue) -> *mut GObject;
1824    pub fn g_value_dup_param(value: *const GValue) -> *mut GParamSpec;
1825    pub fn g_value_dup_string(value: *const GValue) -> *mut c_char;
1826    pub fn g_value_dup_variant(value: *const GValue) -> *mut glib::GVariant;
1827    pub fn g_value_fits_pointer(value: *const GValue) -> gboolean;
1828    pub fn g_value_get_boolean(value: *const GValue) -> gboolean;
1829    pub fn g_value_get_boxed(value: *const GValue) -> gpointer;
1830    pub fn g_value_get_char(value: *const GValue) -> c_char;
1831    pub fn g_value_get_double(value: *const GValue) -> c_double;
1832    pub fn g_value_get_enum(value: *const GValue) -> c_int;
1833    pub fn g_value_get_flags(value: *const GValue) -> c_uint;
1834    pub fn g_value_get_float(value: *const GValue) -> c_float;
1835    pub fn g_value_get_gtype(value: *const GValue) -> GType;
1836    pub fn g_value_get_int(value: *const GValue) -> c_int;
1837    pub fn g_value_get_int64(value: *const GValue) -> i64;
1838    pub fn g_value_get_long(value: *const GValue) -> c_long;
1839    pub fn g_value_get_object(value: *const GValue) -> *mut GObject;
1840    pub fn g_value_get_param(value: *const GValue) -> *mut GParamSpec;
1841    pub fn g_value_get_pointer(value: *const GValue) -> gpointer;
1842    pub fn g_value_get_schar(value: *const GValue) -> i8;
1843    pub fn g_value_get_string(value: *const GValue) -> *const c_char;
1844    pub fn g_value_get_uchar(value: *const GValue) -> c_uchar;
1845    pub fn g_value_get_uint(value: *const GValue) -> c_uint;
1846    pub fn g_value_get_uint64(value: *const GValue) -> u64;
1847    pub fn g_value_get_ulong(value: *const GValue) -> c_ulong;
1848    pub fn g_value_get_variant(value: *const GValue) -> *mut glib::GVariant;
1849    pub fn g_value_init(value: *mut GValue, g_type: GType) -> *mut GValue;
1850    pub fn g_value_init_from_instance(value: *mut GValue, instance: gpointer);
1851    pub fn g_value_peek_pointer(value: *const GValue) -> gpointer;
1852    pub fn g_value_reset(value: *mut GValue) -> *mut GValue;
1853    pub fn g_value_set_boolean(value: *mut GValue, v_boolean: gboolean);
1854    pub fn g_value_set_boxed(value: *mut GValue, v_boxed: gconstpointer);
1855    pub fn g_value_set_boxed_take_ownership(value: *mut GValue, v_boxed: gconstpointer);
1856    pub fn g_value_set_char(value: *mut GValue, v_char: c_char);
1857    pub fn g_value_set_double(value: *mut GValue, v_double: c_double);
1858    pub fn g_value_set_enum(value: *mut GValue, v_enum: c_int);
1859    pub fn g_value_set_flags(value: *mut GValue, v_flags: c_uint);
1860    pub fn g_value_set_float(value: *mut GValue, v_float: c_float);
1861    pub fn g_value_set_gtype(value: *mut GValue, v_gtype: GType);
1862    pub fn g_value_set_instance(value: *mut GValue, instance: gpointer);
1863    pub fn g_value_set_int(value: *mut GValue, v_int: c_int);
1864    pub fn g_value_set_int64(value: *mut GValue, v_int64: i64);
1865    #[cfg(feature = "v2_66")]
1866    #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
1867    pub fn g_value_set_interned_string(value: *mut GValue, v_string: *const c_char);
1868    pub fn g_value_set_long(value: *mut GValue, v_long: c_long);
1869    pub fn g_value_set_object(value: *mut GValue, v_object: *mut GObject);
1870    pub fn g_value_set_object_take_ownership(value: *mut GValue, v_object: gpointer);
1871    pub fn g_value_set_param(value: *mut GValue, param: *mut GParamSpec);
1872    pub fn g_value_set_param_take_ownership(value: *mut GValue, param: *mut GParamSpec);
1873    pub fn g_value_set_pointer(value: *mut GValue, v_pointer: gpointer);
1874    pub fn g_value_set_schar(value: *mut GValue, v_char: i8);
1875    pub fn g_value_set_static_boxed(value: *mut GValue, v_boxed: gconstpointer);
1876    pub fn g_value_set_static_string(value: *mut GValue, v_string: *const c_char);
1877    pub fn g_value_set_string(value: *mut GValue, v_string: *const c_char);
1878    pub fn g_value_set_string_take_ownership(value: *mut GValue, v_string: *mut c_char);
1879    pub fn g_value_set_uchar(value: *mut GValue, v_uchar: c_uchar);
1880    pub fn g_value_set_uint(value: *mut GValue, v_uint: c_uint);
1881    pub fn g_value_set_uint64(value: *mut GValue, v_uint64: u64);
1882    pub fn g_value_set_ulong(value: *mut GValue, v_ulong: c_ulong);
1883    pub fn g_value_set_variant(value: *mut GValue, variant: *mut glib::GVariant);
1884    #[cfg(feature = "v2_80")]
1885    #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1886    pub fn g_value_steal_string(value: *mut GValue) -> *mut c_char;
1887    pub fn g_value_take_boxed(value: *mut GValue, v_boxed: gconstpointer);
1888    pub fn g_value_take_object(value: *mut GValue, v_object: gpointer);
1889    pub fn g_value_take_param(value: *mut GValue, param: *mut GParamSpec);
1890    pub fn g_value_take_string(value: *mut GValue, v_string: *mut c_char);
1891    pub fn g_value_take_variant(value: *mut GValue, variant: *mut glib::GVariant);
1892    pub fn g_value_transform(src_value: *const GValue, dest_value: *mut GValue) -> gboolean;
1893    pub fn g_value_unset(value: *mut GValue);
1894    pub fn g_value_register_transform_func(
1895        src_type: GType,
1896        dest_type: GType,
1897        transform_func: GValueTransform,
1898    );
1899    pub fn g_value_type_compatible(src_type: GType, dest_type: GType) -> gboolean;
1900    pub fn g_value_type_transformable(src_type: GType, dest_type: GType) -> gboolean;
1901
1902    //=========================================================================
1903    // GValueArray
1904    //=========================================================================
1905    pub fn g_value_array_get_type() -> GType;
1906    pub fn g_value_array_new(n_prealloced: c_uint) -> *mut GValueArray;
1907    pub fn g_value_array_append(
1908        value_array: *mut GValueArray,
1909        value: *const GValue,
1910    ) -> *mut GValueArray;
1911    pub fn g_value_array_copy(value_array: *const GValueArray) -> *mut GValueArray;
1912    pub fn g_value_array_free(value_array: *mut GValueArray);
1913    pub fn g_value_array_get_nth(value_array: *mut GValueArray, index_: c_uint) -> *mut GValue;
1914    pub fn g_value_array_insert(
1915        value_array: *mut GValueArray,
1916        index_: c_uint,
1917        value: *const GValue,
1918    ) -> *mut GValueArray;
1919    pub fn g_value_array_prepend(
1920        value_array: *mut GValueArray,
1921        value: *const GValue,
1922    ) -> *mut GValueArray;
1923    pub fn g_value_array_remove(value_array: *mut GValueArray, index_: c_uint) -> *mut GValueArray;
1924    pub fn g_value_array_sort(
1925        value_array: *mut GValueArray,
1926        compare_func: glib::GCompareFunc,
1927    ) -> *mut GValueArray;
1928    pub fn g_value_array_sort_with_data(
1929        value_array: *mut GValueArray,
1930        compare_func: glib::GCompareDataFunc,
1931        user_data: gpointer,
1932    ) -> *mut GValueArray;
1933
1934    //=========================================================================
1935    // GWeakRef
1936    //=========================================================================
1937    pub fn g_weak_ref_clear(weak_ref: *mut GWeakRef);
1938    pub fn g_weak_ref_get(weak_ref: *mut GWeakRef) -> *mut GObject;
1939    pub fn g_weak_ref_init(weak_ref: *mut GWeakRef, object: *mut GObject);
1940    pub fn g_weak_ref_set(weak_ref: *mut GWeakRef, object: *mut GObject);
1941
1942    //=========================================================================
1943    // GBinding
1944    //=========================================================================
1945    pub fn g_binding_get_type() -> GType;
1946    #[cfg(feature = "v2_68")]
1947    #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
1948    pub fn g_binding_dup_source(binding: *mut GBinding) -> *mut GObject;
1949    #[cfg(feature = "v2_68")]
1950    #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
1951    pub fn g_binding_dup_target(binding: *mut GBinding) -> *mut GObject;
1952    pub fn g_binding_get_flags(binding: *mut GBinding) -> GBindingFlags;
1953    pub fn g_binding_get_source(binding: *mut GBinding) -> *mut GObject;
1954    pub fn g_binding_get_source_property(binding: *mut GBinding) -> *const c_char;
1955    pub fn g_binding_get_target(binding: *mut GBinding) -> *mut GObject;
1956    pub fn g_binding_get_target_property(binding: *mut GBinding) -> *const c_char;
1957    pub fn g_binding_unbind(binding: *mut GBinding);
1958
1959    //=========================================================================
1960    // GBindingGroup
1961    //=========================================================================
1962    #[cfg(feature = "v2_72")]
1963    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1964    pub fn g_binding_group_get_type() -> GType;
1965    #[cfg(feature = "v2_72")]
1966    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1967    pub fn g_binding_group_new() -> *mut GBindingGroup;
1968    #[cfg(feature = "v2_72")]
1969    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1970    pub fn g_binding_group_bind(
1971        self_: *mut GBindingGroup,
1972        source_property: *const c_char,
1973        target: *mut GObject,
1974        target_property: *const c_char,
1975        flags: GBindingFlags,
1976    );
1977    #[cfg(feature = "v2_72")]
1978    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1979    pub fn g_binding_group_bind_full(
1980        self_: *mut GBindingGroup,
1981        source_property: *const c_char,
1982        target: *mut GObject,
1983        target_property: *const c_char,
1984        flags: GBindingFlags,
1985        transform_to: GBindingTransformFunc,
1986        transform_from: GBindingTransformFunc,
1987        user_data: gpointer,
1988        user_data_destroy: glib::GDestroyNotify,
1989    );
1990    #[cfg(feature = "v2_72")]
1991    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1992    pub fn g_binding_group_bind_with_closures(
1993        self_: *mut GBindingGroup,
1994        source_property: *const c_char,
1995        target: *mut GObject,
1996        target_property: *const c_char,
1997        flags: GBindingFlags,
1998        transform_to: *mut GClosure,
1999        transform_from: *mut GClosure,
2000    );
2001    #[cfg(feature = "v2_72")]
2002    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2003    pub fn g_binding_group_dup_source(self_: *mut GBindingGroup) -> *mut GObject;
2004    #[cfg(feature = "v2_72")]
2005    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2006    pub fn g_binding_group_set_source(self_: *mut GBindingGroup, source: *mut GObject);
2007
2008    //=========================================================================
2009    // GInitiallyUnowned
2010    //=========================================================================
2011    pub fn g_initially_unowned_get_type() -> GType;
2012
2013    //=========================================================================
2014    // GObject
2015    //=========================================================================
2016    pub fn g_object_get_type() -> GType;
2017    pub fn g_object_new(
2018        object_type: GType,
2019        first_property_name: *const c_char,
2020        ...
2021    ) -> *mut GObject;
2022    //pub fn g_object_new_valist(object_type: GType, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list) -> *mut GObject;
2023    pub fn g_object_new_with_properties(
2024        object_type: GType,
2025        n_properties: c_uint,
2026        names: *mut *const c_char,
2027        values: *const GValue,
2028    ) -> *mut GObject;
2029    pub fn g_object_newv(
2030        object_type: GType,
2031        n_parameters: c_uint,
2032        parameters: *mut GParameter,
2033    ) -> *mut GObject;
2034    pub fn g_object_compat_control(what: size_t, data: gpointer) -> size_t;
2035    pub fn g_object_interface_find_property(
2036        g_iface: gpointer,
2037        property_name: *const c_char,
2038    ) -> *mut GParamSpec;
2039    pub fn g_object_interface_install_property(g_iface: gpointer, pspec: *mut GParamSpec);
2040    pub fn g_object_interface_list_properties(
2041        g_iface: gpointer,
2042        n_properties_p: *mut c_uint,
2043    ) -> *mut *mut GParamSpec;
2044    pub fn g_object_add_toggle_ref(object: *mut GObject, notify: GToggleNotify, data: gpointer);
2045    pub fn g_object_add_weak_pointer(object: *mut GObject, weak_pointer_location: *mut gpointer);
2046    pub fn g_object_bind_property(
2047        source: *mut GObject,
2048        source_property: *const c_char,
2049        target: *mut GObject,
2050        target_property: *const c_char,
2051        flags: GBindingFlags,
2052    ) -> *mut GBinding;
2053    pub fn g_object_bind_property_full(
2054        source: *mut GObject,
2055        source_property: *const c_char,
2056        target: *mut GObject,
2057        target_property: *const c_char,
2058        flags: GBindingFlags,
2059        transform_to: GBindingTransformFunc,
2060        transform_from: GBindingTransformFunc,
2061        user_data: gpointer,
2062        notify: glib::GDestroyNotify,
2063    ) -> *mut GBinding;
2064    pub fn g_object_bind_property_with_closures(
2065        source: *mut GObject,
2066        source_property: *const c_char,
2067        target: *mut GObject,
2068        target_property: *const c_char,
2069        flags: GBindingFlags,
2070        transform_to: *mut GClosure,
2071        transform_from: *mut GClosure,
2072    ) -> *mut GBinding;
2073    pub fn g_object_connect(object: *mut GObject, signal_spec: *const c_char, ...) -> *mut GObject;
2074    pub fn g_object_disconnect(object: *mut GObject, signal_spec: *const c_char, ...);
2075    pub fn g_object_dup_data(
2076        object: *mut GObject,
2077        key: *const c_char,
2078        dup_func: glib::GDuplicateFunc,
2079        user_data: gpointer,
2080    ) -> gpointer;
2081    pub fn g_object_dup_qdata(
2082        object: *mut GObject,
2083        quark: glib::GQuark,
2084        dup_func: glib::GDuplicateFunc,
2085        user_data: gpointer,
2086    ) -> gpointer;
2087    pub fn g_object_force_floating(object: *mut GObject);
2088    pub fn g_object_freeze_notify(object: *mut GObject);
2089    pub fn g_object_get(object: *mut GObject, first_property_name: *const c_char, ...);
2090    pub fn g_object_get_data(object: *mut GObject, key: *const c_char) -> gpointer;
2091    pub fn g_object_get_property(
2092        object: *mut GObject,
2093        property_name: *const c_char,
2094        value: *mut GValue,
2095    );
2096    pub fn g_object_get_qdata(object: *mut GObject, quark: glib::GQuark) -> gpointer;
2097    //pub fn g_object_get_valist(object: *mut GObject, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
2098    pub fn g_object_getv(
2099        object: *mut GObject,
2100        n_properties: c_uint,
2101        names: *mut *const c_char,
2102        values: *mut GValue,
2103    );
2104    pub fn g_object_is_floating(object: *mut GObject) -> gboolean;
2105    pub fn g_object_notify(object: *mut GObject, property_name: *const c_char);
2106    pub fn g_object_notify_by_pspec(object: *mut GObject, pspec: *mut GParamSpec);
2107    pub fn g_object_ref(object: *mut GObject) -> *mut GObject;
2108    pub fn g_object_ref_sink(object: *mut GObject) -> *mut GObject;
2109    pub fn g_object_remove_toggle_ref(object: *mut GObject, notify: GToggleNotify, data: gpointer);
2110    pub fn g_object_remove_weak_pointer(object: *mut GObject, weak_pointer_location: *mut gpointer);
2111    pub fn g_object_replace_data(
2112        object: *mut GObject,
2113        key: *const c_char,
2114        oldval: gpointer,
2115        newval: gpointer,
2116        destroy: glib::GDestroyNotify,
2117        old_destroy: *mut glib::GDestroyNotify,
2118    ) -> gboolean;
2119    pub fn g_object_replace_qdata(
2120        object: *mut GObject,
2121        quark: glib::GQuark,
2122        oldval: gpointer,
2123        newval: gpointer,
2124        destroy: glib::GDestroyNotify,
2125        old_destroy: *mut glib::GDestroyNotify,
2126    ) -> gboolean;
2127    pub fn g_object_run_dispose(object: *mut GObject);
2128    pub fn g_object_set(object: *mut GObject, first_property_name: *const c_char, ...);
2129    pub fn g_object_set_data(object: *mut GObject, key: *const c_char, data: gpointer);
2130    pub fn g_object_set_data_full(
2131        object: *mut GObject,
2132        key: *const c_char,
2133        data: gpointer,
2134        destroy: glib::GDestroyNotify,
2135    );
2136    pub fn g_object_set_property(
2137        object: *mut GObject,
2138        property_name: *const c_char,
2139        value: *const GValue,
2140    );
2141    pub fn g_object_set_qdata(object: *mut GObject, quark: glib::GQuark, data: gpointer);
2142    pub fn g_object_set_qdata_full(
2143        object: *mut GObject,
2144        quark: glib::GQuark,
2145        data: gpointer,
2146        destroy: glib::GDestroyNotify,
2147    );
2148    //pub fn g_object_set_valist(object: *mut GObject, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list);
2149    pub fn g_object_setv(
2150        object: *mut GObject,
2151        n_properties: c_uint,
2152        names: *mut *const c_char,
2153        values: *const GValue,
2154    );
2155    pub fn g_object_steal_data(object: *mut GObject, key: *const c_char) -> gpointer;
2156    pub fn g_object_steal_qdata(object: *mut GObject, quark: glib::GQuark) -> gpointer;
2157    #[cfg(feature = "v2_70")]
2158    #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
2159    pub fn g_object_take_ref(object: *mut GObject) -> *mut GObject;
2160    pub fn g_object_thaw_notify(object: *mut GObject);
2161    pub fn g_object_unref(object: *mut GObject);
2162    pub fn g_object_watch_closure(object: *mut GObject, closure: *mut GClosure);
2163    pub fn g_object_weak_ref(object: *mut GObject, notify: GWeakNotify, data: gpointer);
2164    pub fn g_object_weak_unref(object: *mut GObject, notify: GWeakNotify, data: gpointer);
2165
2166    //=========================================================================
2167    // GParamSpec
2168    //=========================================================================
2169    pub fn g_param_spec_internal(
2170        param_type: GType,
2171        name: *const c_char,
2172        nick: *const c_char,
2173        blurb: *const c_char,
2174        flags: GParamFlags,
2175    ) -> *mut GParamSpec;
2176    #[cfg(feature = "v2_66")]
2177    #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2178    pub fn g_param_spec_is_valid_name(name: *const c_char) -> gboolean;
2179    pub fn g_param_spec_get_blurb(pspec: *mut GParamSpec) -> *const c_char;
2180    pub fn g_param_spec_get_default_value(pspec: *mut GParamSpec) -> *const GValue;
2181    pub fn g_param_spec_get_name(pspec: *mut GParamSpec) -> *const c_char;
2182    pub fn g_param_spec_get_name_quark(pspec: *mut GParamSpec) -> glib::GQuark;
2183    pub fn g_param_spec_get_nick(pspec: *mut GParamSpec) -> *const c_char;
2184    pub fn g_param_spec_get_qdata(pspec: *mut GParamSpec, quark: glib::GQuark) -> gpointer;
2185    pub fn g_param_spec_get_redirect_target(pspec: *mut GParamSpec) -> *mut GParamSpec;
2186    pub fn g_param_spec_ref(pspec: *mut GParamSpec) -> *mut GParamSpec;
2187    pub fn g_param_spec_ref_sink(pspec: *mut GParamSpec) -> *mut GParamSpec;
2188    pub fn g_param_spec_set_qdata(pspec: *mut GParamSpec, quark: glib::GQuark, data: gpointer);
2189    pub fn g_param_spec_set_qdata_full(
2190        pspec: *mut GParamSpec,
2191        quark: glib::GQuark,
2192        data: gpointer,
2193        destroy: glib::GDestroyNotify,
2194    );
2195    pub fn g_param_spec_sink(pspec: *mut GParamSpec);
2196    pub fn g_param_spec_steal_qdata(pspec: *mut GParamSpec, quark: glib::GQuark) -> gpointer;
2197    pub fn g_param_spec_unref(pspec: *mut GParamSpec);
2198
2199    //=========================================================================
2200    // GSignalGroup
2201    //=========================================================================
2202    #[cfg(feature = "v2_72")]
2203    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2204    pub fn g_signal_group_get_type() -> GType;
2205    #[cfg(feature = "v2_72")]
2206    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2207    pub fn g_signal_group_new(target_type: GType) -> *mut GSignalGroup;
2208    #[cfg(feature = "v2_72")]
2209    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2210    pub fn g_signal_group_block(self_: *mut GSignalGroup);
2211    #[cfg(feature = "v2_72")]
2212    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2213    pub fn g_signal_group_connect(
2214        self_: *mut GSignalGroup,
2215        detailed_signal: *const c_char,
2216        c_handler: GCallback,
2217        data: gpointer,
2218    );
2219    #[cfg(feature = "v2_72")]
2220    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2221    pub fn g_signal_group_connect_after(
2222        self_: *mut GSignalGroup,
2223        detailed_signal: *const c_char,
2224        c_handler: GCallback,
2225        data: gpointer,
2226    );
2227    #[cfg(feature = "v2_74")]
2228    #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
2229    pub fn g_signal_group_connect_closure(
2230        self_: *mut GSignalGroup,
2231        detailed_signal: *const c_char,
2232        closure: *mut GClosure,
2233        after: gboolean,
2234    );
2235    #[cfg(feature = "v2_72")]
2236    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2237    pub fn g_signal_group_connect_data(
2238        self_: *mut GSignalGroup,
2239        detailed_signal: *const c_char,
2240        c_handler: GCallback,
2241        data: gpointer,
2242        notify: GClosureNotify,
2243        flags: GConnectFlags,
2244    );
2245    #[cfg(feature = "v2_72")]
2246    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2247    pub fn g_signal_group_connect_object(
2248        self_: *mut GSignalGroup,
2249        detailed_signal: *const c_char,
2250        c_handler: GCallback,
2251        object: gpointer,
2252        flags: GConnectFlags,
2253    );
2254    #[cfg(feature = "v2_72")]
2255    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2256    pub fn g_signal_group_connect_swapped(
2257        self_: *mut GSignalGroup,
2258        detailed_signal: *const c_char,
2259        c_handler: GCallback,
2260        data: gpointer,
2261    );
2262    #[cfg(feature = "v2_72")]
2263    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2264    pub fn g_signal_group_dup_target(self_: *mut GSignalGroup) -> *mut GObject;
2265    #[cfg(feature = "v2_72")]
2266    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2267    pub fn g_signal_group_set_target(self_: *mut GSignalGroup, target: *mut GObject);
2268    #[cfg(feature = "v2_72")]
2269    #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2270    pub fn g_signal_group_unblock(self_: *mut GSignalGroup);
2271
2272    //=========================================================================
2273    // GTypeModule
2274    //=========================================================================
2275    pub fn g_type_module_get_type() -> GType;
2276    pub fn g_type_module_add_interface(
2277        module: *mut GTypeModule,
2278        instance_type: GType,
2279        interface_type: GType,
2280        interface_info: *const GInterfaceInfo,
2281    );
2282    pub fn g_type_module_register_enum(
2283        module: *mut GTypeModule,
2284        name: *const c_char,
2285        const_static_values: *const GEnumValue,
2286    ) -> GType;
2287    pub fn g_type_module_register_flags(
2288        module: *mut GTypeModule,
2289        name: *const c_char,
2290        const_static_values: *const GFlagsValue,
2291    ) -> GType;
2292    pub fn g_type_module_register_type(
2293        module: *mut GTypeModule,
2294        parent_type: GType,
2295        type_name: *const c_char,
2296        type_info: *const GTypeInfo,
2297        flags: GTypeFlags,
2298    ) -> GType;
2299    pub fn g_type_module_set_name(module: *mut GTypeModule, name: *const c_char);
2300    pub fn g_type_module_unuse(module: *mut GTypeModule);
2301    pub fn g_type_module_use(module: *mut GTypeModule) -> gboolean;
2302
2303    //=========================================================================
2304    // GTypePlugin
2305    //=========================================================================
2306    pub fn g_type_plugin_get_type() -> GType;
2307    pub fn g_type_plugin_complete_interface_info(
2308        plugin: *mut GTypePlugin,
2309        instance_type: GType,
2310        interface_type: GType,
2311        info: *mut GInterfaceInfo,
2312    );
2313    pub fn g_type_plugin_complete_type_info(
2314        plugin: *mut GTypePlugin,
2315        g_type: GType,
2316        info: *mut GTypeInfo,
2317        value_table: *mut GTypeValueTable,
2318    );
2319    pub fn g_type_plugin_unuse(plugin: *mut GTypePlugin);
2320    pub fn g_type_plugin_use(plugin: *mut GTypePlugin);
2321
2322    //=========================================================================
2323    // Other functions
2324    //=========================================================================
2325    pub fn g_boxed_copy(boxed_type: GType, src_boxed: gconstpointer) -> gpointer;
2326    pub fn g_boxed_free(boxed_type: GType, boxed: gpointer);
2327    pub fn g_boxed_type_register_static(
2328        name: *const c_char,
2329        boxed_copy: GBoxedCopyFunc,
2330        boxed_free: GBoxedFreeFunc,
2331    ) -> GType;
2332    pub fn g_clear_object(object_ptr: *mut *mut GObject);
2333    #[cfg(feature = "v2_62")]
2334    #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
2335    pub fn g_clear_signal_handler(handler_id_ptr: *mut c_ulong, instance: *mut GObject);
2336    pub fn g_enum_complete_type_info(
2337        g_enum_type: GType,
2338        info: *mut GTypeInfo,
2339        const_values: *const GEnumValue,
2340    );
2341    pub fn g_enum_get_value(enum_class: *mut GEnumClass, value: c_int) -> *mut GEnumValue;
2342    pub fn g_enum_get_value_by_name(
2343        enum_class: *mut GEnumClass,
2344        name: *const c_char,
2345    ) -> *mut GEnumValue;
2346    pub fn g_enum_get_value_by_nick(
2347        enum_class: *mut GEnumClass,
2348        nick: *const c_char,
2349    ) -> *mut GEnumValue;
2350    pub fn g_enum_register_static(
2351        name: *const c_char,
2352        const_static_values: *const GEnumValue,
2353    ) -> GType;
2354    pub fn g_enum_to_string(g_enum_type: GType, value: c_int) -> *mut c_char;
2355    pub fn g_flags_complete_type_info(
2356        g_flags_type: GType,
2357        info: *mut GTypeInfo,
2358        const_values: *const GFlagsValue,
2359    );
2360    pub fn g_flags_get_first_value(
2361        flags_class: *mut GFlagsClass,
2362        value: c_uint,
2363    ) -> *mut GFlagsValue;
2364    pub fn g_flags_get_value_by_name(
2365        flags_class: *mut GFlagsClass,
2366        name: *const c_char,
2367    ) -> *mut GFlagsValue;
2368    pub fn g_flags_get_value_by_nick(
2369        flags_class: *mut GFlagsClass,
2370        nick: *const c_char,
2371    ) -> *mut GFlagsValue;
2372    pub fn g_flags_register_static(
2373        name: *const c_char,
2374        const_static_values: *const GFlagsValue,
2375    ) -> GType;
2376    pub fn g_flags_to_string(flags_type: GType, value: c_uint) -> *mut c_char;
2377    pub fn g_gtype_get_type() -> GType;
2378    pub fn g_param_spec_boolean(
2379        name: *const c_char,
2380        nick: *const c_char,
2381        blurb: *const c_char,
2382        default_value: gboolean,
2383        flags: GParamFlags,
2384    ) -> *mut GParamSpec;
2385    pub fn g_param_spec_boxed(
2386        name: *const c_char,
2387        nick: *const c_char,
2388        blurb: *const c_char,
2389        boxed_type: GType,
2390        flags: GParamFlags,
2391    ) -> *mut GParamSpec;
2392    pub fn g_param_spec_char(
2393        name: *const c_char,
2394        nick: *const c_char,
2395        blurb: *const c_char,
2396        minimum: i8,
2397        maximum: i8,
2398        default_value: i8,
2399        flags: GParamFlags,
2400    ) -> *mut GParamSpec;
2401    pub fn g_param_spec_double(
2402        name: *const c_char,
2403        nick: *const c_char,
2404        blurb: *const c_char,
2405        minimum: c_double,
2406        maximum: c_double,
2407        default_value: c_double,
2408        flags: GParamFlags,
2409    ) -> *mut GParamSpec;
2410    pub fn g_param_spec_enum(
2411        name: *const c_char,
2412        nick: *const c_char,
2413        blurb: *const c_char,
2414        enum_type: GType,
2415        default_value: c_int,
2416        flags: GParamFlags,
2417    ) -> *mut GParamSpec;
2418    pub fn g_param_spec_flags(
2419        name: *const c_char,
2420        nick: *const c_char,
2421        blurb: *const c_char,
2422        flags_type: GType,
2423        default_value: c_uint,
2424        flags: GParamFlags,
2425    ) -> *mut GParamSpec;
2426    pub fn g_param_spec_float(
2427        name: *const c_char,
2428        nick: *const c_char,
2429        blurb: *const c_char,
2430        minimum: c_float,
2431        maximum: c_float,
2432        default_value: c_float,
2433        flags: GParamFlags,
2434    ) -> *mut GParamSpec;
2435    pub fn g_param_spec_gtype(
2436        name: *const c_char,
2437        nick: *const c_char,
2438        blurb: *const c_char,
2439        is_a_type: GType,
2440        flags: GParamFlags,
2441    ) -> *mut GParamSpec;
2442    pub fn g_param_spec_int(
2443        name: *const c_char,
2444        nick: *const c_char,
2445        blurb: *const c_char,
2446        minimum: c_int,
2447        maximum: c_int,
2448        default_value: c_int,
2449        flags: GParamFlags,
2450    ) -> *mut GParamSpec;
2451    pub fn g_param_spec_int64(
2452        name: *const c_char,
2453        nick: *const c_char,
2454        blurb: *const c_char,
2455        minimum: i64,
2456        maximum: i64,
2457        default_value: i64,
2458        flags: GParamFlags,
2459    ) -> *mut GParamSpec;
2460    pub fn g_param_spec_long(
2461        name: *const c_char,
2462        nick: *const c_char,
2463        blurb: *const c_char,
2464        minimum: c_long,
2465        maximum: c_long,
2466        default_value: c_long,
2467        flags: GParamFlags,
2468    ) -> *mut GParamSpec;
2469    pub fn g_param_spec_object(
2470        name: *const c_char,
2471        nick: *const c_char,
2472        blurb: *const c_char,
2473        object_type: GType,
2474        flags: GParamFlags,
2475    ) -> *mut GParamSpec;
2476    pub fn g_param_spec_override(
2477        name: *const c_char,
2478        overridden: *mut GParamSpec,
2479    ) -> *mut GParamSpec;
2480    pub fn g_param_spec_param(
2481        name: *const c_char,
2482        nick: *const c_char,
2483        blurb: *const c_char,
2484        param_type: GType,
2485        flags: GParamFlags,
2486    ) -> *mut GParamSpec;
2487    pub fn g_param_spec_pointer(
2488        name: *const c_char,
2489        nick: *const c_char,
2490        blurb: *const c_char,
2491        flags: GParamFlags,
2492    ) -> *mut GParamSpec;
2493    pub fn g_param_spec_string(
2494        name: *const c_char,
2495        nick: *const c_char,
2496        blurb: *const c_char,
2497        default_value: *const c_char,
2498        flags: GParamFlags,
2499    ) -> *mut GParamSpec;
2500    pub fn g_param_spec_uchar(
2501        name: *const c_char,
2502        nick: *const c_char,
2503        blurb: *const c_char,
2504        minimum: u8,
2505        maximum: u8,
2506        default_value: u8,
2507        flags: GParamFlags,
2508    ) -> *mut GParamSpec;
2509    pub fn g_param_spec_uint(
2510        name: *const c_char,
2511        nick: *const c_char,
2512        blurb: *const c_char,
2513        minimum: c_uint,
2514        maximum: c_uint,
2515        default_value: c_uint,
2516        flags: GParamFlags,
2517    ) -> *mut GParamSpec;
2518    pub fn g_param_spec_uint64(
2519        name: *const c_char,
2520        nick: *const c_char,
2521        blurb: *const c_char,
2522        minimum: u64,
2523        maximum: u64,
2524        default_value: u64,
2525        flags: GParamFlags,
2526    ) -> *mut GParamSpec;
2527    pub fn g_param_spec_ulong(
2528        name: *const c_char,
2529        nick: *const c_char,
2530        blurb: *const c_char,
2531        minimum: c_ulong,
2532        maximum: c_ulong,
2533        default_value: c_ulong,
2534        flags: GParamFlags,
2535    ) -> *mut GParamSpec;
2536    pub fn g_param_spec_unichar(
2537        name: *const c_char,
2538        nick: *const c_char,
2539        blurb: *const c_char,
2540        default_value: u32,
2541        flags: GParamFlags,
2542    ) -> *mut GParamSpec;
2543    pub fn g_param_spec_value_array(
2544        name: *const c_char,
2545        nick: *const c_char,
2546        blurb: *const c_char,
2547        element_spec: *mut GParamSpec,
2548        flags: GParamFlags,
2549    ) -> *mut GParamSpec;
2550    pub fn g_param_spec_variant(
2551        name: *const c_char,
2552        nick: *const c_char,
2553        blurb: *const c_char,
2554        type_: *const glib::GVariantType,
2555        default_value: *mut glib::GVariant,
2556        flags: GParamFlags,
2557    ) -> *mut GParamSpec;
2558    pub fn g_param_type_register_static(
2559        name: *const c_char,
2560        pspec_info: *const GParamSpecTypeInfo,
2561    ) -> GType;
2562    pub fn g_param_value_convert(
2563        pspec: *mut GParamSpec,
2564        src_value: *const GValue,
2565        dest_value: *mut GValue,
2566        strict_validation: gboolean,
2567    ) -> gboolean;
2568    pub fn g_param_value_defaults(pspec: *mut GParamSpec, value: *const GValue) -> gboolean;
2569    #[cfg(feature = "v2_74")]
2570    #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
2571    pub fn g_param_value_is_valid(pspec: *mut GParamSpec, value: *const GValue) -> gboolean;
2572    pub fn g_param_value_set_default(pspec: *mut GParamSpec, value: *mut GValue);
2573    pub fn g_param_value_validate(pspec: *mut GParamSpec, value: *mut GValue) -> gboolean;
2574    pub fn g_param_values_cmp(
2575        pspec: *mut GParamSpec,
2576        value1: *const GValue,
2577        value2: *const GValue,
2578    ) -> c_int;
2579    pub fn g_pointer_type_register_static(name: *const c_char) -> GType;
2580    pub fn g_signal_accumulator_first_wins(
2581        ihint: *mut GSignalInvocationHint,
2582        return_accu: *mut GValue,
2583        handler_return: *const GValue,
2584        dummy: gpointer,
2585    ) -> gboolean;
2586    pub fn g_signal_accumulator_true_handled(
2587        ihint: *mut GSignalInvocationHint,
2588        return_accu: *mut GValue,
2589        handler_return: *const GValue,
2590        dummy: gpointer,
2591    ) -> gboolean;
2592    pub fn g_signal_add_emission_hook(
2593        signal_id: c_uint,
2594        detail: glib::GQuark,
2595        hook_func: GSignalEmissionHook,
2596        hook_data: gpointer,
2597        data_destroy: glib::GDestroyNotify,
2598    ) -> c_ulong;
2599    pub fn g_signal_chain_from_overridden(
2600        instance_and_params: *const GValue,
2601        return_value: *mut GValue,
2602    );
2603    pub fn g_signal_chain_from_overridden_handler(instance: gpointer, ...);
2604    pub fn g_signal_connect_closure(
2605        instance: *mut GObject,
2606        detailed_signal: *const c_char,
2607        closure: *mut GClosure,
2608        after: gboolean,
2609    ) -> c_ulong;
2610    pub fn g_signal_connect_closure_by_id(
2611        instance: *mut GObject,
2612        signal_id: c_uint,
2613        detail: glib::GQuark,
2614        closure: *mut GClosure,
2615        after: gboolean,
2616    ) -> c_ulong;
2617    pub fn g_signal_connect_data(
2618        instance: *mut GObject,
2619        detailed_signal: *const c_char,
2620        c_handler: GCallback,
2621        data: gpointer,
2622        destroy_data: GClosureNotify,
2623        connect_flags: GConnectFlags,
2624    ) -> c_ulong;
2625    pub fn g_signal_connect_object(
2626        instance: gpointer,
2627        detailed_signal: *const c_char,
2628        c_handler: GCallback,
2629        gobject: *mut GObject,
2630        connect_flags: GConnectFlags,
2631    ) -> c_ulong;
2632    pub fn g_signal_emit(instance: *mut GObject, signal_id: c_uint, detail: glib::GQuark, ...);
2633    pub fn g_signal_emit_by_name(instance: *mut GObject, detailed_signal: *const c_char, ...);
2634    //pub fn g_signal_emit_valist(instance: gpointer, signal_id: c_uint, detail: glib::GQuark, var_args: /*Unimplemented*/va_list);
2635    pub fn g_signal_emitv(
2636        instance_and_params: *const GValue,
2637        signal_id: c_uint,
2638        detail: glib::GQuark,
2639        return_value: *mut GValue,
2640    );
2641    pub fn g_signal_get_invocation_hint(instance: *mut GObject) -> *mut GSignalInvocationHint;
2642    pub fn g_signal_handler_block(instance: *mut GObject, handler_id: c_ulong);
2643    pub fn g_signal_handler_disconnect(instance: *mut GObject, handler_id: c_ulong);
2644    pub fn g_signal_handler_find(
2645        instance: *mut GObject,
2646        mask: GSignalMatchType,
2647        signal_id: c_uint,
2648        detail: glib::GQuark,
2649        closure: *mut GClosure,
2650        func: gpointer,
2651        data: gpointer,
2652    ) -> c_ulong;
2653    pub fn g_signal_handler_is_connected(instance: *mut GObject, handler_id: c_ulong) -> gboolean;
2654    pub fn g_signal_handler_unblock(instance: *mut GObject, handler_id: c_ulong);
2655    pub fn g_signal_handlers_block_matched(
2656        instance: *mut GObject,
2657        mask: GSignalMatchType,
2658        signal_id: c_uint,
2659        detail: glib::GQuark,
2660        closure: *mut GClosure,
2661        func: gpointer,
2662        data: gpointer,
2663    ) -> c_uint;
2664    pub fn g_signal_handlers_destroy(instance: *mut GObject);
2665    pub fn g_signal_handlers_disconnect_matched(
2666        instance: *mut GObject,
2667        mask: GSignalMatchType,
2668        signal_id: c_uint,
2669        detail: glib::GQuark,
2670        closure: *mut GClosure,
2671        func: gpointer,
2672        data: gpointer,
2673    ) -> c_uint;
2674    pub fn g_signal_handlers_unblock_matched(
2675        instance: *mut GObject,
2676        mask: GSignalMatchType,
2677        signal_id: c_uint,
2678        detail: glib::GQuark,
2679        closure: *mut GClosure,
2680        func: gpointer,
2681        data: gpointer,
2682    ) -> c_uint;
2683    pub fn g_signal_has_handler_pending(
2684        instance: *mut GObject,
2685        signal_id: c_uint,
2686        detail: glib::GQuark,
2687        may_be_blocked: gboolean,
2688    ) -> gboolean;
2689    #[cfg(feature = "v2_66")]
2690    #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2691    pub fn g_signal_is_valid_name(name: *const c_char) -> gboolean;
2692    pub fn g_signal_list_ids(itype: GType, n_ids: *mut c_uint) -> *mut c_uint;
2693    pub fn g_signal_lookup(name: *const c_char, itype: GType) -> c_uint;
2694    pub fn g_signal_name(signal_id: c_uint) -> *const c_char;
2695    pub fn g_signal_new(
2696        signal_name: *const c_char,
2697        itype: GType,
2698        signal_flags: GSignalFlags,
2699        class_offset: c_uint,
2700        accumulator: GSignalAccumulator,
2701        accu_data: gpointer,
2702        c_marshaller: GSignalCMarshaller,
2703        return_type: GType,
2704        n_params: c_uint,
2705        ...
2706    ) -> c_uint;
2707    pub fn g_signal_new_class_handler(
2708        signal_name: *const c_char,
2709        itype: GType,
2710        signal_flags: GSignalFlags,
2711        class_handler: GCallback,
2712        accumulator: GSignalAccumulator,
2713        accu_data: gpointer,
2714        c_marshaller: GSignalCMarshaller,
2715        return_type: GType,
2716        n_params: c_uint,
2717        ...
2718    ) -> c_uint;
2719    //pub fn g_signal_new_valist(signal_name: *const c_char, itype: GType, signal_flags: GSignalFlags, class_closure: *mut GClosure, accumulator: GSignalAccumulator, accu_data: gpointer, c_marshaller: GSignalCMarshaller, return_type: GType, n_params: c_uint, args: /*Unimplemented*/va_list) -> c_uint;
2720    pub fn g_signal_newv(
2721        signal_name: *const c_char,
2722        itype: GType,
2723        signal_flags: GSignalFlags,
2724        class_closure: *mut GClosure,
2725        accumulator: GSignalAccumulator,
2726        accu_data: gpointer,
2727        c_marshaller: GSignalCMarshaller,
2728        return_type: GType,
2729        n_params: c_uint,
2730        param_types: *mut GType,
2731    ) -> c_uint;
2732    pub fn g_signal_override_class_closure(
2733        signal_id: c_uint,
2734        instance_type: GType,
2735        class_closure: *mut GClosure,
2736    );
2737    pub fn g_signal_override_class_handler(
2738        signal_name: *const c_char,
2739        instance_type: GType,
2740        class_handler: GCallback,
2741    );
2742    pub fn g_signal_parse_name(
2743        detailed_signal: *const c_char,
2744        itype: GType,
2745        signal_id_p: *mut c_uint,
2746        detail_p: *mut glib::GQuark,
2747        force_detail_quark: gboolean,
2748    ) -> gboolean;
2749    pub fn g_signal_query(signal_id: c_uint, query: *mut GSignalQuery);
2750    pub fn g_signal_remove_emission_hook(signal_id: c_uint, hook_id: c_ulong);
2751    //pub fn g_signal_set_va_marshaller(signal_id: c_uint, instance_type: GType, va_marshaller: /*Ignored*/GSignalCVaMarshaller);
2752    pub fn g_signal_stop_emission(instance: *mut GObject, signal_id: c_uint, detail: glib::GQuark);
2753    pub fn g_signal_stop_emission_by_name(instance: *mut GObject, detailed_signal: *const c_char);
2754    pub fn g_signal_type_cclosure_new(itype: GType, struct_offset: c_uint) -> *mut GClosure;
2755    pub fn g_strdup_value_contents(value: *const GValue) -> *mut c_char;
2756    pub fn g_type_add_class_cache_func(cache_data: gpointer, cache_func: GTypeClassCacheFunc);
2757    pub fn g_type_add_class_private(class_type: GType, private_size: size_t);
2758    pub fn g_type_add_instance_private(class_type: GType, private_size: size_t) -> c_int;
2759    pub fn g_type_add_interface_check(check_data: gpointer, check_func: GTypeInterfaceCheckFunc);
2760    pub fn g_type_add_interface_dynamic(
2761        instance_type: GType,
2762        interface_type: GType,
2763        plugin: *mut GTypePlugin,
2764    );
2765    pub fn g_type_add_interface_static(
2766        instance_type: GType,
2767        interface_type: GType,
2768        info: *const GInterfaceInfo,
2769    );
2770    pub fn g_type_check_class_cast(g_class: *mut GTypeClass, is_a_type: GType) -> *mut GTypeClass;
2771    pub fn g_type_check_class_is_a(g_class: *mut GTypeClass, is_a_type: GType) -> gboolean;
2772    pub fn g_type_check_instance(instance: *mut GTypeInstance) -> gboolean;
2773    pub fn g_type_check_instance_cast(
2774        instance: *mut GTypeInstance,
2775        iface_type: GType,
2776    ) -> *mut GTypeInstance;
2777    pub fn g_type_check_instance_is_a(instance: *mut GTypeInstance, iface_type: GType) -> gboolean;
2778    pub fn g_type_check_instance_is_fundamentally_a(
2779        instance: *mut GTypeInstance,
2780        fundamental_type: GType,
2781    ) -> gboolean;
2782    pub fn g_type_check_is_value_type(type_: GType) -> gboolean;
2783    pub fn g_type_check_value(value: *const GValue) -> gboolean;
2784    pub fn g_type_check_value_holds(value: *const GValue, type_: GType) -> gboolean;
2785    pub fn g_type_children(type_: GType, n_children: *mut c_uint) -> *mut GType;
2786    pub fn g_type_create_instance(type_: GType) -> *mut GTypeInstance;
2787    #[cfg(feature = "v2_84")]
2788    #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2789    pub fn g_type_default_interface_get(g_type: GType) -> gpointer;
2790    pub fn g_type_default_interface_peek(g_type: GType) -> gpointer;
2791    pub fn g_type_default_interface_ref(g_type: GType) -> gpointer;
2792    pub fn g_type_default_interface_unref(g_iface: gpointer);
2793    pub fn g_type_depth(type_: GType) -> c_uint;
2794    pub fn g_type_ensure(type_: GType);
2795    pub fn g_type_free_instance(instance: *mut GTypeInstance);
2796    pub fn g_type_from_name(name: *const c_char) -> GType;
2797    pub fn g_type_fundamental(type_id: GType) -> GType;
2798    pub fn g_type_fundamental_next() -> GType;
2799    pub fn g_type_get_instance_count(type_: GType) -> c_int;
2800    pub fn g_type_get_plugin(type_: GType) -> *mut GTypePlugin;
2801    pub fn g_type_get_qdata(type_: GType, quark: glib::GQuark) -> gpointer;
2802    pub fn g_type_get_type_registration_serial() -> c_uint;
2803    pub fn g_type_init();
2804    pub fn g_type_init_with_debug_flags(debug_flags: GTypeDebugFlags);
2805    pub fn g_type_interfaces(type_: GType, n_interfaces: *mut c_uint) -> *mut GType;
2806    pub fn g_type_is_a(type_: GType, is_a_type: GType) -> gboolean;
2807    pub fn g_type_name(type_: GType) -> *const c_char;
2808    pub fn g_type_name_from_class(g_class: *mut GTypeClass) -> *const c_char;
2809    pub fn g_type_name_from_instance(instance: *mut GTypeInstance) -> *const c_char;
2810    pub fn g_type_next_base(leaf_type: GType, root_type: GType) -> GType;
2811    pub fn g_type_parent(type_: GType) -> GType;
2812    pub fn g_type_qname(type_: GType) -> glib::GQuark;
2813    pub fn g_type_query(type_: GType, query: *mut GTypeQuery);
2814    pub fn g_type_register_dynamic(
2815        parent_type: GType,
2816        type_name: *const c_char,
2817        plugin: *mut GTypePlugin,
2818        flags: GTypeFlags,
2819    ) -> GType;
2820    pub fn g_type_register_fundamental(
2821        type_id: GType,
2822        type_name: *const c_char,
2823        info: *const GTypeInfo,
2824        finfo: *const GTypeFundamentalInfo,
2825        flags: GTypeFlags,
2826    ) -> GType;
2827    pub fn g_type_register_static(
2828        parent_type: GType,
2829        type_name: *const c_char,
2830        info: *const GTypeInfo,
2831        flags: GTypeFlags,
2832    ) -> GType;
2833    pub fn g_type_register_static_simple(
2834        parent_type: GType,
2835        type_name: *const c_char,
2836        class_size: c_uint,
2837        class_init: GClassInitFunc,
2838        instance_size: c_uint,
2839        instance_init: GInstanceInitFunc,
2840        flags: GTypeFlags,
2841    ) -> GType;
2842    pub fn g_type_remove_class_cache_func(cache_data: gpointer, cache_func: GTypeClassCacheFunc);
2843    pub fn g_type_remove_interface_check(check_data: gpointer, check_func: GTypeInterfaceCheckFunc);
2844    pub fn g_type_set_qdata(type_: GType, quark: glib::GQuark, data: gpointer);
2845    pub fn g_type_test_flags(type_: GType, flags: c_uint) -> gboolean;
2846    pub fn g_variant_get_gtype() -> GType;
2847
2848}