From 47a653b7d068d6bace3f33e42a493c333e3b38f7 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 13 Jul 2023 15:29:00 +0900 Subject: [PATCH] Import glib-sys 0.17.10 --- .cargo_vcs_info.json | 6 + Cargo.toml | 104 + Cargo.toml.orig | 85 + Gir.toml | 102 + LICENSE | 18 + build.rs | 17 + src/lib.rs | 6997 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/manual.rs | 87 + tests/abi.rs | 1811 +++++++++++++ tests/constant.c | 837 ++++++ tests/layout.c | 121 + tests/manual.h | 9 + versions.txt | 2 + 13 files changed, 10196 insertions(+) create mode 100644 .cargo_vcs_info.json create mode 100644 Cargo.toml create mode 100644 Cargo.toml.orig create mode 100644 Gir.toml create mode 100644 LICENSE create mode 100644 build.rs create mode 100644 src/lib.rs create mode 100644 src/manual.rs create mode 100644 tests/abi.rs create mode 100644 tests/constant.c create mode 100644 tests/layout.c create mode 100644 tests/manual.h create mode 100644 versions.txt diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json new file mode 100644 index 0000000..5425c8d --- /dev/null +++ b/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "6b109fb807237b5d07aff9a541ca68e9c2191abd" + }, + "path_in_vcs": "glib/sys" +} \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..6f238b5 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,104 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.64" +name = "glib-sys" +version = "0.17.10" +authors = ["The gtk-rs Project Developers"] +build = "build.rs" +description = "FFI bindings to libglib-2.0" +homepage = "https://gtk-rs.org/" +keywords = [ + "glib", + "ffi", + "gtk-rs", + "gnome", +] +license = "MIT" +repository = "https://github.com/gtk-rs/gtk-rs-core" +resolver = "1" + +[package.metadata.docs.rs] +features = ["dox"] + +[package.metadata.system-deps.glib_2_0] +name = "glib-2.0" +version = "2.56" + +[package.metadata.system-deps.glib_2_0.v2_58] +version = "2.58" + +[package.metadata.system-deps.glib_2_0.v2_60] +version = "2.60" + +[package.metadata.system-deps.glib_2_0.v2_62] +version = "2.62" + +[package.metadata.system-deps.glib_2_0.v2_64] +version = "2.64" + +[package.metadata.system-deps.glib_2_0.v2_66] +version = "2.66" + +[package.metadata.system-deps.glib_2_0.v2_68] +version = "2.68" + +[package.metadata.system-deps.glib_2_0.v2_70] +version = "2.70" + +[package.metadata.system-deps.glib_2_0.v2_72] +version = "2.72" + +[package.metadata.system-deps.glib_2_0.v2_74] +version = "2.74" + +[package.metadata.system-deps.glib_2_0.v2_76] +version = "2.76" + +[package.metadata.system-deps.gobject_2_0] +name = "gobject-2.0" +version = "2.56" + +[package.metadata.system-deps.gobject_2_0.v2_58] +version = "2.58" + +[package.metadata.system-deps.gobject_2_0.v2_62] +version = "2.62" + +[lib] +name = "glib_sys" + +[dependencies.libc] +version = "0.2" + +[dev-dependencies.shell-words] +version = "1.0.0" + +[dev-dependencies.tempfile] +version = "3" + +[build-dependencies.system-deps] +version = "6" + +[features] +dox = [] +v2_58 = [] +v2_60 = ["v2_58"] +v2_62 = ["v2_60"] +v2_64 = ["v2_62"] +v2_66 = ["v2_64"] +v2_68 = ["v2_66"] +v2_70 = ["v2_68"] +v2_72 = ["v2_70"] +v2_74 = ["v2_72"] +v2_76 = ["v2_74"] diff --git a/Cargo.toml.orig b/Cargo.toml.orig new file mode 100644 index 0000000..a052908 --- /dev/null +++ b/Cargo.toml.orig @@ -0,0 +1,85 @@ +[build-dependencies] +system-deps = "6" + +[dependencies] +libc = "0.2" + +[dev-dependencies] +shell-words = "1.0.0" +tempfile = "3" + +[features] +dox = [] +v2_58 = [] +v2_60 = ["v2_58"] +v2_62 = ["v2_60"] +v2_64 = ["v2_62"] +v2_66 = ["v2_64"] +v2_68 = ["v2_66"] +v2_70 = ["v2_68"] +v2_72 = ["v2_70"] +v2_74 = ["v2_72"] +v2_76 = ["v2_74"] + +[lib] +name = "glib_sys" + +[package] +authors = ["The gtk-rs Project Developers"] +build = "build.rs" +description = "FFI bindings to libglib-2.0" +homepage = "https://gtk-rs.org/" +keywords = ["glib", "ffi", "gtk-rs", "gnome"] +license = "MIT" +name = "glib-sys" +repository = "https://github.com/gtk-rs/gtk-rs-core" +version = "0.17.10" +edition = "2021" +rust-version = "1.64" + +[package.metadata.docs.rs] +features = ["dox"] + +[package.metadata.system-deps.glib_2_0] +name = "glib-2.0" +version = "2.56" + +[package.metadata.system-deps.glib_2_0.v2_58] +version = "2.58" + +[package.metadata.system-deps.glib_2_0.v2_60] +version = "2.60" + +[package.metadata.system-deps.glib_2_0.v2_62] +version = "2.62" + +[package.metadata.system-deps.glib_2_0.v2_64] +version = "2.64" + +[package.metadata.system-deps.glib_2_0.v2_66] +version = "2.66" + +[package.metadata.system-deps.glib_2_0.v2_68] +version = "2.68" + +[package.metadata.system-deps.glib_2_0.v2_70] +version = "2.70" + +[package.metadata.system-deps.glib_2_0.v2_72] +version = "2.72" + +[package.metadata.system-deps.glib_2_0.v2_74] +version = "2.74" + +[package.metadata.system-deps.glib_2_0.v2_76] +version = "2.76" + +[package.metadata.system-deps.gobject_2_0] +name = "gobject-2.0" +version = "2.56" + +[package.metadata.system-deps.gobject_2_0.v2_58] +version = "2.58" + +[package.metadata.system-deps.gobject_2_0.v2_62] +version = "2.62" diff --git a/Gir.toml b/Gir.toml new file mode 100644 index 0000000..c75b8e5 --- /dev/null +++ b/Gir.toml @@ -0,0 +1,102 @@ +[options] +work_mode = "sys" +library = "GLib" +version = "2.0" +min_cfg_version = "2.56" +single_version_file = "." +girs_directories = ["../../gir-files"] + +ignore = [ + "GLib.ANALYZER_ANALYZING", + "GLib.C_STD_VERSION", + "GLib.DIR_SEPARATOR", + "GLib.DIR_SEPARATOR_S", + "GLib.GINT16_FORMAT", + "GLib.GINT16_MODIFIER", + "GLib.GINT32_FORMAT", + "GLib.GINT32_MODIFIER", + "GLib.GINT64_FORMAT", + "GLib.GINT64_MODIFIER", + "GLib.GNUC_FUNCTION", + "GLib.GNUC_PRETTY_FUNCTION", + "GLib.GUINT16_FORMAT", + "GLib.GUINT32_FORMAT", + "GLib.GUINT64_FORMAT", + "GLib.GUINT64_MODIFIER", + "GLib.GINTPTR_FORMAT", + "GLib.GINTPTR_MODIFIER", + "GLib.GUINTPTR_FORMAT", + "GLib.GUINTPTR_MODIFIER", + "GLib.GSIZE_FORMAT", + "GLib.GSIZE_MODIFIER", + "GLib.GSSIZE_FORMAT", + "GLib.GSSIZE_MODIFIER", + "GLib.HAVE_GINT64", + "GLib.HAVE_GNUC_VARARGS", + "GLib.HAVE_GNUC_VISIBILITY", + "GLib.HAVE_GROWING_STACK", + "GLib.HAVE_ISO_VARARGS", + "GLib.MAJOR_VERSION", + "GLib.MAXINT8", + "GLib.MAXINT16", + "GLib.MAXINT32", + "GLib.MAXINT64", + "GLib.MAXUINT8", + "GLib.MAXUINT16", + "GLib.MAXUINT32", + "GLib.MAXUINT64", + "GLib.MICRO_VERSION", + "GLib.MININT8", + "GLib.MININT16", + "GLib.MININT32", + "GLib.MININT64", + "GLib.MINOR_VERSION", + "GLib.MODULE_SUFFIX", + "GLib.PID_FORMAT", + "GLib.POLLFD_FORMAT", + "GLib.SEARCHPATH_SEPARATOR", + "GLib.SEARCHPATH_SEPARATOR_S", + "GLib.SIZEOF_LONG", + "GLib.SIZEOF_SIZE_T", + "GLib.SIZEOF_SSIZE_T", + "GLib.SIZEOF_VOID_P", + "GLib.VA_COPY_AS_ARRAY", + "GLib.VERSION_MIN_REQUIRED", +] + +[[object]] +name = "GLib.*" +status = "generate" + [[object.function]] + name = "unix_get_passwd_entry" + cfg_condition = "unix" + [[object.function]] + name = "win32_get_package_installation_directory_of_module" + manual = true + cfg_condition = "windows" + [[object.function]] + name = "get_user_state_dir" + version = "2.72" + +[[object]] +name = "GLib.LOG_DOMAIN" +# C-only macro +status = "ignore" + +[[object]] +name = "GLib.Pid" +status = "manual" + +[[object]] +name = "GLib.PollFD" +status = "manual" + +[[object]] +name = "GLib.TestLogMsg" +# layout is broken due to rust having no long double +status = "ignore" + +[[object]] +name = "GLib.macro__has_attribute___noreturn__" +# C-only macro +status = "ignore" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..64a801a --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..8d181da --- /dev/null +++ b/build.rs @@ -0,0 +1,17 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from gir-files (https://github.com/gtk-rs/gir-files) +// DO NOT EDIT + +#[cfg(not(feature = "dox"))] +use std::process; + +#[cfg(feature = "dox")] +fn main() {} // prevent linking libraries to avoid documentation failure + +#[cfg(not(feature = "dox"))] +fn main() { + if let Err(s) = system_deps::Config::new().probe() { + println!("cargo:warning={s}"); + process::exit(1); + } +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..293f81d --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,6997 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from gir-files (https://github.com/gtk-rs/gir-files) +// DO NOT EDIT + +#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)] +#![allow( + clippy::approx_constant, + clippy::type_complexity, + clippy::unreadable_literal, + clippy::upper_case_acronyms +)] +#![cfg_attr(feature = "dox", feature(doc_cfg))] + +mod manual; + +pub use manual::*; + +#[allow(unused_imports)] +use libc::{ + c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, + intptr_t, size_t, ssize_t, uintptr_t, FILE, +}; + +pub type gboolean = c_int; +pub const GFALSE: c_int = 0; +pub const GTRUE: c_int = 1; + +pub type gconstpointer = *const c_void; +pub type gpointer = *mut c_void; + +// Aliases +pub type GDateDay = u8; +pub type GDateYear = u16; +pub type GMainContextPusher = c_void; +pub type GMutexLocker = c_void; +pub type GQuark = u32; +pub type GRWLockReaderLocker = c_void; +pub type GRWLockWriterLocker = c_void; +pub type GRecMutexLocker = c_void; +pub type GRefString = c_char; +pub type GStrv = *mut *mut c_char; +pub type GTime = i32; +pub type GTimeSpan = i64; +pub type GType = size_t; + +// Enums +pub type GBookmarkFileError = c_int; +pub const G_BOOKMARK_FILE_ERROR_INVALID_URI: GBookmarkFileError = 0; +pub const G_BOOKMARK_FILE_ERROR_INVALID_VALUE: GBookmarkFileError = 1; +pub const G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: GBookmarkFileError = 2; +pub const G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: GBookmarkFileError = 3; +pub const G_BOOKMARK_FILE_ERROR_READ: GBookmarkFileError = 4; +pub const G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: GBookmarkFileError = 5; +pub const G_BOOKMARK_FILE_ERROR_WRITE: GBookmarkFileError = 6; +pub const G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: GBookmarkFileError = 7; + +pub type GChecksumType = c_int; +pub const G_CHECKSUM_MD5: GChecksumType = 0; +pub const G_CHECKSUM_SHA1: GChecksumType = 1; +pub const G_CHECKSUM_SHA256: GChecksumType = 2; +pub const G_CHECKSUM_SHA512: GChecksumType = 3; +pub const G_CHECKSUM_SHA384: GChecksumType = 4; + +pub type GConvertError = c_int; +pub const G_CONVERT_ERROR_NO_CONVERSION: GConvertError = 0; +pub const G_CONVERT_ERROR_ILLEGAL_SEQUENCE: GConvertError = 1; +pub const G_CONVERT_ERROR_FAILED: GConvertError = 2; +pub const G_CONVERT_ERROR_PARTIAL_INPUT: GConvertError = 3; +pub const G_CONVERT_ERROR_BAD_URI: GConvertError = 4; +pub const G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: GConvertError = 5; +pub const G_CONVERT_ERROR_NO_MEMORY: GConvertError = 6; +pub const G_CONVERT_ERROR_EMBEDDED_NUL: GConvertError = 7; + +pub type GDateDMY = c_int; +pub const G_DATE_DAY: GDateDMY = 0; +pub const G_DATE_MONTH: GDateDMY = 1; +pub const G_DATE_YEAR: GDateDMY = 2; + +pub type GDateMonth = c_int; +pub const G_DATE_BAD_MONTH: GDateMonth = 0; +pub const G_DATE_JANUARY: GDateMonth = 1; +pub const G_DATE_FEBRUARY: GDateMonth = 2; +pub const G_DATE_MARCH: GDateMonth = 3; +pub const G_DATE_APRIL: GDateMonth = 4; +pub const G_DATE_MAY: GDateMonth = 5; +pub const G_DATE_JUNE: GDateMonth = 6; +pub const G_DATE_JULY: GDateMonth = 7; +pub const G_DATE_AUGUST: GDateMonth = 8; +pub const G_DATE_SEPTEMBER: GDateMonth = 9; +pub const G_DATE_OCTOBER: GDateMonth = 10; +pub const G_DATE_NOVEMBER: GDateMonth = 11; +pub const G_DATE_DECEMBER: GDateMonth = 12; + +pub type GDateWeekday = c_int; +pub const G_DATE_BAD_WEEKDAY: GDateWeekday = 0; +pub const G_DATE_MONDAY: GDateWeekday = 1; +pub const G_DATE_TUESDAY: GDateWeekday = 2; +pub const G_DATE_WEDNESDAY: GDateWeekday = 3; +pub const G_DATE_THURSDAY: GDateWeekday = 4; +pub const G_DATE_FRIDAY: GDateWeekday = 5; +pub const G_DATE_SATURDAY: GDateWeekday = 6; +pub const G_DATE_SUNDAY: GDateWeekday = 7; + +pub type GErrorType = c_int; +pub const G_ERR_UNKNOWN: GErrorType = 0; +pub const G_ERR_UNEXP_EOF: GErrorType = 1; +pub const G_ERR_UNEXP_EOF_IN_STRING: GErrorType = 2; +pub const G_ERR_UNEXP_EOF_IN_COMMENT: GErrorType = 3; +pub const G_ERR_NON_DIGIT_IN_CONST: GErrorType = 4; +pub const G_ERR_DIGIT_RADIX: GErrorType = 5; +pub const G_ERR_FLOAT_RADIX: GErrorType = 6; +pub const G_ERR_FLOAT_MALFORMED: GErrorType = 7; + +pub type GFileError = c_int; +pub const G_FILE_ERROR_EXIST: GFileError = 0; +pub const G_FILE_ERROR_ISDIR: GFileError = 1; +pub const G_FILE_ERROR_ACCES: GFileError = 2; +pub const G_FILE_ERROR_NAMETOOLONG: GFileError = 3; +pub const G_FILE_ERROR_NOENT: GFileError = 4; +pub const G_FILE_ERROR_NOTDIR: GFileError = 5; +pub const G_FILE_ERROR_NXIO: GFileError = 6; +pub const G_FILE_ERROR_NODEV: GFileError = 7; +pub const G_FILE_ERROR_ROFS: GFileError = 8; +pub const G_FILE_ERROR_TXTBSY: GFileError = 9; +pub const G_FILE_ERROR_FAULT: GFileError = 10; +pub const G_FILE_ERROR_LOOP: GFileError = 11; +pub const G_FILE_ERROR_NOSPC: GFileError = 12; +pub const G_FILE_ERROR_NOMEM: GFileError = 13; +pub const G_FILE_ERROR_MFILE: GFileError = 14; +pub const G_FILE_ERROR_NFILE: GFileError = 15; +pub const G_FILE_ERROR_BADF: GFileError = 16; +pub const G_FILE_ERROR_INVAL: GFileError = 17; +pub const G_FILE_ERROR_PIPE: GFileError = 18; +pub const G_FILE_ERROR_AGAIN: GFileError = 19; +pub const G_FILE_ERROR_INTR: GFileError = 20; +pub const G_FILE_ERROR_IO: GFileError = 21; +pub const G_FILE_ERROR_PERM: GFileError = 22; +pub const G_FILE_ERROR_NOSYS: GFileError = 23; +pub const G_FILE_ERROR_FAILED: GFileError = 24; + +pub type GIOChannelError = c_int; +pub const G_IO_CHANNEL_ERROR_FBIG: GIOChannelError = 0; +pub const G_IO_CHANNEL_ERROR_INVAL: GIOChannelError = 1; +pub const G_IO_CHANNEL_ERROR_IO: GIOChannelError = 2; +pub const G_IO_CHANNEL_ERROR_ISDIR: GIOChannelError = 3; +pub const G_IO_CHANNEL_ERROR_NOSPC: GIOChannelError = 4; +pub const G_IO_CHANNEL_ERROR_NXIO: GIOChannelError = 5; +pub const G_IO_CHANNEL_ERROR_OVERFLOW: GIOChannelError = 6; +pub const G_IO_CHANNEL_ERROR_PIPE: GIOChannelError = 7; +pub const G_IO_CHANNEL_ERROR_FAILED: GIOChannelError = 8; + +pub type GIOError = c_int; +pub const G_IO_ERROR_NONE: GIOError = 0; +pub const G_IO_ERROR_AGAIN: GIOError = 1; +pub const G_IO_ERROR_INVAL: GIOError = 2; +pub const G_IO_ERROR_UNKNOWN: GIOError = 3; + +pub type GIOStatus = c_int; +pub const G_IO_STATUS_ERROR: GIOStatus = 0; +pub const G_IO_STATUS_NORMAL: GIOStatus = 1; +pub const G_IO_STATUS_EOF: GIOStatus = 2; +pub const G_IO_STATUS_AGAIN: GIOStatus = 3; + +pub type GKeyFileError = c_int; +pub const G_KEY_FILE_ERROR_UNKNOWN_ENCODING: GKeyFileError = 0; +pub const G_KEY_FILE_ERROR_PARSE: GKeyFileError = 1; +pub const G_KEY_FILE_ERROR_NOT_FOUND: GKeyFileError = 2; +pub const G_KEY_FILE_ERROR_KEY_NOT_FOUND: GKeyFileError = 3; +pub const G_KEY_FILE_ERROR_GROUP_NOT_FOUND: GKeyFileError = 4; +pub const G_KEY_FILE_ERROR_INVALID_VALUE: GKeyFileError = 5; + +pub type GLogWriterOutput = c_int; +pub const G_LOG_WRITER_HANDLED: GLogWriterOutput = 1; +pub const G_LOG_WRITER_UNHANDLED: GLogWriterOutput = 0; + +pub type GMarkupError = c_int; +pub const G_MARKUP_ERROR_BAD_UTF8: GMarkupError = 0; +pub const G_MARKUP_ERROR_EMPTY: GMarkupError = 1; +pub const G_MARKUP_ERROR_PARSE: GMarkupError = 2; +pub const G_MARKUP_ERROR_UNKNOWN_ELEMENT: GMarkupError = 3; +pub const G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: GMarkupError = 4; +pub const G_MARKUP_ERROR_INVALID_CONTENT: GMarkupError = 5; +pub const G_MARKUP_ERROR_MISSING_ATTRIBUTE: GMarkupError = 6; + +pub type GNormalizeMode = c_int; +pub const G_NORMALIZE_DEFAULT: GNormalizeMode = 0; +pub const G_NORMALIZE_NFD: GNormalizeMode = 0; +pub const G_NORMALIZE_DEFAULT_COMPOSE: GNormalizeMode = 1; +pub const G_NORMALIZE_NFC: GNormalizeMode = 1; +pub const G_NORMALIZE_ALL: GNormalizeMode = 2; +pub const G_NORMALIZE_NFKD: GNormalizeMode = 2; +pub const G_NORMALIZE_ALL_COMPOSE: GNormalizeMode = 3; +pub const G_NORMALIZE_NFKC: GNormalizeMode = 3; + +pub type GNumberParserError = c_int; +pub const G_NUMBER_PARSER_ERROR_INVALID: GNumberParserError = 0; +pub const G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: GNumberParserError = 1; + +pub type GOnceStatus = c_int; +pub const G_ONCE_STATUS_NOTCALLED: GOnceStatus = 0; +pub const G_ONCE_STATUS_PROGRESS: GOnceStatus = 1; +pub const G_ONCE_STATUS_READY: GOnceStatus = 2; + +pub type GOptionArg = c_int; +pub const G_OPTION_ARG_NONE: GOptionArg = 0; +pub const G_OPTION_ARG_STRING: GOptionArg = 1; +pub const G_OPTION_ARG_INT: GOptionArg = 2; +pub const G_OPTION_ARG_CALLBACK: GOptionArg = 3; +pub const G_OPTION_ARG_FILENAME: GOptionArg = 4; +pub const G_OPTION_ARG_STRING_ARRAY: GOptionArg = 5; +pub const G_OPTION_ARG_FILENAME_ARRAY: GOptionArg = 6; +pub const G_OPTION_ARG_DOUBLE: GOptionArg = 7; +pub const G_OPTION_ARG_INT64: GOptionArg = 8; + +pub type GOptionError = c_int; +pub const G_OPTION_ERROR_UNKNOWN_OPTION: GOptionError = 0; +pub const G_OPTION_ERROR_BAD_VALUE: GOptionError = 1; +pub const G_OPTION_ERROR_FAILED: GOptionError = 2; + +pub type GRegexError = c_int; +pub const G_REGEX_ERROR_COMPILE: GRegexError = 0; +pub const G_REGEX_ERROR_OPTIMIZE: GRegexError = 1; +pub const G_REGEX_ERROR_REPLACE: GRegexError = 2; +pub const G_REGEX_ERROR_MATCH: GRegexError = 3; +pub const G_REGEX_ERROR_INTERNAL: GRegexError = 4; +pub const G_REGEX_ERROR_STRAY_BACKSLASH: GRegexError = 101; +pub const G_REGEX_ERROR_MISSING_CONTROL_CHAR: GRegexError = 102; +pub const G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: GRegexError = 103; +pub const G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: GRegexError = 104; +pub const G_REGEX_ERROR_QUANTIFIER_TOO_BIG: GRegexError = 105; +pub const G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: GRegexError = 106; +pub const G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: GRegexError = 107; +pub const G_REGEX_ERROR_RANGE_OUT_OF_ORDER: GRegexError = 108; +pub const G_REGEX_ERROR_NOTHING_TO_REPEAT: GRegexError = 109; +pub const G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: GRegexError = 112; +pub const G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: GRegexError = 113; +pub const G_REGEX_ERROR_UNMATCHED_PARENTHESIS: GRegexError = 114; +pub const G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: GRegexError = 115; +pub const G_REGEX_ERROR_UNTERMINATED_COMMENT: GRegexError = 118; +pub const G_REGEX_ERROR_EXPRESSION_TOO_LARGE: GRegexError = 120; +pub const G_REGEX_ERROR_MEMORY_ERROR: GRegexError = 121; +pub const G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: GRegexError = 125; +pub const G_REGEX_ERROR_MALFORMED_CONDITION: GRegexError = 126; +pub const G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: GRegexError = 127; +pub const G_REGEX_ERROR_ASSERTION_EXPECTED: GRegexError = 128; +pub const G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: GRegexError = 130; +pub const G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: GRegexError = 131; +pub const G_REGEX_ERROR_HEX_CODE_TOO_LARGE: GRegexError = 134; +pub const G_REGEX_ERROR_INVALID_CONDITION: GRegexError = 135; +pub const G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: GRegexError = 136; +pub const G_REGEX_ERROR_INFINITE_LOOP: GRegexError = 140; +pub const G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: GRegexError = 142; +pub const G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: GRegexError = 143; +pub const G_REGEX_ERROR_MALFORMED_PROPERTY: GRegexError = 146; +pub const G_REGEX_ERROR_UNKNOWN_PROPERTY: GRegexError = 147; +pub const G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: GRegexError = 148; +pub const G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: GRegexError = 149; +pub const G_REGEX_ERROR_INVALID_OCTAL_VALUE: GRegexError = 151; +pub const G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: GRegexError = 154; +pub const G_REGEX_ERROR_DEFINE_REPETION: GRegexError = 155; +pub const G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: GRegexError = 156; +pub const G_REGEX_ERROR_MISSING_BACK_REFERENCE: GRegexError = 157; +pub const G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: GRegexError = 158; +pub const G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: GRegexError = 159; +pub const G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: GRegexError = 160; +pub const G_REGEX_ERROR_NUMBER_TOO_BIG: GRegexError = 161; +pub const G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: GRegexError = 162; +pub const G_REGEX_ERROR_MISSING_DIGIT: GRegexError = 163; +pub const G_REGEX_ERROR_INVALID_DATA_CHARACTER: GRegexError = 164; +pub const G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: GRegexError = 165; +pub const G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: GRegexError = 166; +pub const G_REGEX_ERROR_INVALID_CONTROL_CHAR: GRegexError = 168; +pub const G_REGEX_ERROR_MISSING_NAME: GRegexError = 169; +pub const G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: GRegexError = 171; +pub const G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: GRegexError = 172; +pub const G_REGEX_ERROR_NAME_TOO_LONG: GRegexError = 175; +pub const G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: GRegexError = 176; + +pub type GSeekType = c_int; +pub const G_SEEK_CUR: GSeekType = 0; +pub const G_SEEK_SET: GSeekType = 1; +pub const G_SEEK_END: GSeekType = 2; + +pub type GShellError = c_int; +pub const G_SHELL_ERROR_BAD_QUOTING: GShellError = 0; +pub const G_SHELL_ERROR_EMPTY_STRING: GShellError = 1; +pub const G_SHELL_ERROR_FAILED: GShellError = 2; + +pub type GSliceConfig = c_int; +pub const G_SLICE_CONFIG_ALWAYS_MALLOC: GSliceConfig = 1; +pub const G_SLICE_CONFIG_BYPASS_MAGAZINES: GSliceConfig = 2; +pub const G_SLICE_CONFIG_WORKING_SET_MSECS: GSliceConfig = 3; +pub const G_SLICE_CONFIG_COLOR_INCREMENT: GSliceConfig = 4; +pub const G_SLICE_CONFIG_CHUNK_SIZES: GSliceConfig = 5; +pub const G_SLICE_CONFIG_CONTENTION_COUNTER: GSliceConfig = 6; + +pub type GSpawnError = c_int; +pub const G_SPAWN_ERROR_FORK: GSpawnError = 0; +pub const G_SPAWN_ERROR_READ: GSpawnError = 1; +pub const G_SPAWN_ERROR_CHDIR: GSpawnError = 2; +pub const G_SPAWN_ERROR_ACCES: GSpawnError = 3; +pub const G_SPAWN_ERROR_PERM: GSpawnError = 4; +pub const G_SPAWN_ERROR_TOO_BIG: GSpawnError = 5; +pub const G_SPAWN_ERROR_2BIG: GSpawnError = 5; +pub const G_SPAWN_ERROR_NOEXEC: GSpawnError = 6; +pub const G_SPAWN_ERROR_NAMETOOLONG: GSpawnError = 7; +pub const G_SPAWN_ERROR_NOENT: GSpawnError = 8; +pub const G_SPAWN_ERROR_NOMEM: GSpawnError = 9; +pub const G_SPAWN_ERROR_NOTDIR: GSpawnError = 10; +pub const G_SPAWN_ERROR_LOOP: GSpawnError = 11; +pub const G_SPAWN_ERROR_TXTBUSY: GSpawnError = 12; +pub const G_SPAWN_ERROR_IO: GSpawnError = 13; +pub const G_SPAWN_ERROR_NFILE: GSpawnError = 14; +pub const G_SPAWN_ERROR_MFILE: GSpawnError = 15; +pub const G_SPAWN_ERROR_INVAL: GSpawnError = 16; +pub const G_SPAWN_ERROR_ISDIR: GSpawnError = 17; +pub const G_SPAWN_ERROR_LIBBAD: GSpawnError = 18; +pub const G_SPAWN_ERROR_FAILED: GSpawnError = 19; + +pub type GTestFileType = c_int; +pub const G_TEST_DIST: GTestFileType = 0; +pub const G_TEST_BUILT: GTestFileType = 1; + +pub type GTestLogType = c_int; +pub const G_TEST_LOG_NONE: GTestLogType = 0; +pub const G_TEST_LOG_ERROR: GTestLogType = 1; +pub const G_TEST_LOG_START_BINARY: GTestLogType = 2; +pub const G_TEST_LOG_LIST_CASE: GTestLogType = 3; +pub const G_TEST_LOG_SKIP_CASE: GTestLogType = 4; +pub const G_TEST_LOG_START_CASE: GTestLogType = 5; +pub const G_TEST_LOG_STOP_CASE: GTestLogType = 6; +pub const G_TEST_LOG_MIN_RESULT: GTestLogType = 7; +pub const G_TEST_LOG_MAX_RESULT: GTestLogType = 8; +pub const G_TEST_LOG_MESSAGE: GTestLogType = 9; +pub const G_TEST_LOG_START_SUITE: GTestLogType = 10; +pub const G_TEST_LOG_STOP_SUITE: GTestLogType = 11; + +pub type GTestResult = c_int; +pub const G_TEST_RUN_SUCCESS: GTestResult = 0; +pub const G_TEST_RUN_SKIPPED: GTestResult = 1; +pub const G_TEST_RUN_FAILURE: GTestResult = 2; +pub const G_TEST_RUN_INCOMPLETE: GTestResult = 3; + +pub type GThreadError = c_int; +pub const G_THREAD_ERROR_AGAIN: GThreadError = 0; + +pub type GTimeType = c_int; +pub const G_TIME_TYPE_STANDARD: GTimeType = 0; +pub const G_TIME_TYPE_DAYLIGHT: GTimeType = 1; +pub const G_TIME_TYPE_UNIVERSAL: GTimeType = 2; + +pub type GTokenType = c_int; +pub const G_TOKEN_EOF: GTokenType = 0; +pub const G_TOKEN_LEFT_PAREN: GTokenType = 40; +pub const G_TOKEN_RIGHT_PAREN: GTokenType = 41; +pub const G_TOKEN_LEFT_CURLY: GTokenType = 123; +pub const G_TOKEN_RIGHT_CURLY: GTokenType = 125; +pub const G_TOKEN_LEFT_BRACE: GTokenType = 91; +pub const G_TOKEN_RIGHT_BRACE: GTokenType = 93; +pub const G_TOKEN_EQUAL_SIGN: GTokenType = 61; +pub const G_TOKEN_COMMA: GTokenType = 44; +pub const G_TOKEN_NONE: GTokenType = 256; +pub const G_TOKEN_ERROR: GTokenType = 257; +pub const G_TOKEN_CHAR: GTokenType = 258; +pub const G_TOKEN_BINARY: GTokenType = 259; +pub const G_TOKEN_OCTAL: GTokenType = 260; +pub const G_TOKEN_INT: GTokenType = 261; +pub const G_TOKEN_HEX: GTokenType = 262; +pub const G_TOKEN_FLOAT: GTokenType = 263; +pub const G_TOKEN_STRING: GTokenType = 264; +pub const G_TOKEN_SYMBOL: GTokenType = 265; +pub const G_TOKEN_IDENTIFIER: GTokenType = 266; +pub const G_TOKEN_IDENTIFIER_NULL: GTokenType = 267; +pub const G_TOKEN_COMMENT_SINGLE: GTokenType = 268; +pub const G_TOKEN_COMMENT_MULTI: GTokenType = 269; + +pub type GTraverseType = c_int; +pub const G_IN_ORDER: GTraverseType = 0; +pub const G_PRE_ORDER: GTraverseType = 1; +pub const G_POST_ORDER: GTraverseType = 2; +pub const G_LEVEL_ORDER: GTraverseType = 3; + +pub type GUnicodeBreakType = c_int; +pub const G_UNICODE_BREAK_MANDATORY: GUnicodeBreakType = 0; +pub const G_UNICODE_BREAK_CARRIAGE_RETURN: GUnicodeBreakType = 1; +pub const G_UNICODE_BREAK_LINE_FEED: GUnicodeBreakType = 2; +pub const G_UNICODE_BREAK_COMBINING_MARK: GUnicodeBreakType = 3; +pub const G_UNICODE_BREAK_SURROGATE: GUnicodeBreakType = 4; +pub const G_UNICODE_BREAK_ZERO_WIDTH_SPACE: GUnicodeBreakType = 5; +pub const G_UNICODE_BREAK_INSEPARABLE: GUnicodeBreakType = 6; +pub const G_UNICODE_BREAK_NON_BREAKING_GLUE: GUnicodeBreakType = 7; +pub const G_UNICODE_BREAK_CONTINGENT: GUnicodeBreakType = 8; +pub const G_UNICODE_BREAK_SPACE: GUnicodeBreakType = 9; +pub const G_UNICODE_BREAK_AFTER: GUnicodeBreakType = 10; +pub const G_UNICODE_BREAK_BEFORE: GUnicodeBreakType = 11; +pub const G_UNICODE_BREAK_BEFORE_AND_AFTER: GUnicodeBreakType = 12; +pub const G_UNICODE_BREAK_HYPHEN: GUnicodeBreakType = 13; +pub const G_UNICODE_BREAK_NON_STARTER: GUnicodeBreakType = 14; +pub const G_UNICODE_BREAK_OPEN_PUNCTUATION: GUnicodeBreakType = 15; +pub const G_UNICODE_BREAK_CLOSE_PUNCTUATION: GUnicodeBreakType = 16; +pub const G_UNICODE_BREAK_QUOTATION: GUnicodeBreakType = 17; +pub const G_UNICODE_BREAK_EXCLAMATION: GUnicodeBreakType = 18; +pub const G_UNICODE_BREAK_IDEOGRAPHIC: GUnicodeBreakType = 19; +pub const G_UNICODE_BREAK_NUMERIC: GUnicodeBreakType = 20; +pub const G_UNICODE_BREAK_INFIX_SEPARATOR: GUnicodeBreakType = 21; +pub const G_UNICODE_BREAK_SYMBOL: GUnicodeBreakType = 22; +pub const G_UNICODE_BREAK_ALPHABETIC: GUnicodeBreakType = 23; +pub const G_UNICODE_BREAK_PREFIX: GUnicodeBreakType = 24; +pub const G_UNICODE_BREAK_POSTFIX: GUnicodeBreakType = 25; +pub const G_UNICODE_BREAK_COMPLEX_CONTEXT: GUnicodeBreakType = 26; +pub const G_UNICODE_BREAK_AMBIGUOUS: GUnicodeBreakType = 27; +pub const G_UNICODE_BREAK_UNKNOWN: GUnicodeBreakType = 28; +pub const G_UNICODE_BREAK_NEXT_LINE: GUnicodeBreakType = 29; +pub const G_UNICODE_BREAK_WORD_JOINER: GUnicodeBreakType = 30; +pub const G_UNICODE_BREAK_HANGUL_L_JAMO: GUnicodeBreakType = 31; +pub const G_UNICODE_BREAK_HANGUL_V_JAMO: GUnicodeBreakType = 32; +pub const G_UNICODE_BREAK_HANGUL_T_JAMO: GUnicodeBreakType = 33; +pub const G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: GUnicodeBreakType = 34; +pub const G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: GUnicodeBreakType = 35; +pub const G_UNICODE_BREAK_CLOSE_PARANTHESIS: GUnicodeBreakType = 36; +pub const G_UNICODE_BREAK_CLOSE_PARENTHESIS: GUnicodeBreakType = 36; +pub const G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: GUnicodeBreakType = 37; +pub const G_UNICODE_BREAK_HEBREW_LETTER: GUnicodeBreakType = 38; +pub const G_UNICODE_BREAK_REGIONAL_INDICATOR: GUnicodeBreakType = 39; +pub const G_UNICODE_BREAK_EMOJI_BASE: GUnicodeBreakType = 40; +pub const G_UNICODE_BREAK_EMOJI_MODIFIER: GUnicodeBreakType = 41; +pub const G_UNICODE_BREAK_ZERO_WIDTH_JOINER: GUnicodeBreakType = 42; + +pub type GUnicodeScript = c_int; +pub const G_UNICODE_SCRIPT_INVALID_CODE: GUnicodeScript = -1; +pub const G_UNICODE_SCRIPT_COMMON: GUnicodeScript = 0; +pub const G_UNICODE_SCRIPT_INHERITED: GUnicodeScript = 1; +pub const G_UNICODE_SCRIPT_ARABIC: GUnicodeScript = 2; +pub const G_UNICODE_SCRIPT_ARMENIAN: GUnicodeScript = 3; +pub const G_UNICODE_SCRIPT_BENGALI: GUnicodeScript = 4; +pub const G_UNICODE_SCRIPT_BOPOMOFO: GUnicodeScript = 5; +pub const G_UNICODE_SCRIPT_CHEROKEE: GUnicodeScript = 6; +pub const G_UNICODE_SCRIPT_COPTIC: GUnicodeScript = 7; +pub const G_UNICODE_SCRIPT_CYRILLIC: GUnicodeScript = 8; +pub const G_UNICODE_SCRIPT_DESERET: GUnicodeScript = 9; +pub const G_UNICODE_SCRIPT_DEVANAGARI: GUnicodeScript = 10; +pub const G_UNICODE_SCRIPT_ETHIOPIC: GUnicodeScript = 11; +pub const G_UNICODE_SCRIPT_GEORGIAN: GUnicodeScript = 12; +pub const G_UNICODE_SCRIPT_GOTHIC: GUnicodeScript = 13; +pub const G_UNICODE_SCRIPT_GREEK: GUnicodeScript = 14; +pub const G_UNICODE_SCRIPT_GUJARATI: GUnicodeScript = 15; +pub const G_UNICODE_SCRIPT_GURMUKHI: GUnicodeScript = 16; +pub const G_UNICODE_SCRIPT_HAN: GUnicodeScript = 17; +pub const G_UNICODE_SCRIPT_HANGUL: GUnicodeScript = 18; +pub const G_UNICODE_SCRIPT_HEBREW: GUnicodeScript = 19; +pub const G_UNICODE_SCRIPT_HIRAGANA: GUnicodeScript = 20; +pub const G_UNICODE_SCRIPT_KANNADA: GUnicodeScript = 21; +pub const G_UNICODE_SCRIPT_KATAKANA: GUnicodeScript = 22; +pub const G_UNICODE_SCRIPT_KHMER: GUnicodeScript = 23; +pub const G_UNICODE_SCRIPT_LAO: GUnicodeScript = 24; +pub const G_UNICODE_SCRIPT_LATIN: GUnicodeScript = 25; +pub const G_UNICODE_SCRIPT_MALAYALAM: GUnicodeScript = 26; +pub const G_UNICODE_SCRIPT_MONGOLIAN: GUnicodeScript = 27; +pub const G_UNICODE_SCRIPT_MYANMAR: GUnicodeScript = 28; +pub const G_UNICODE_SCRIPT_OGHAM: GUnicodeScript = 29; +pub const G_UNICODE_SCRIPT_OLD_ITALIC: GUnicodeScript = 30; +pub const G_UNICODE_SCRIPT_ORIYA: GUnicodeScript = 31; +pub const G_UNICODE_SCRIPT_RUNIC: GUnicodeScript = 32; +pub const G_UNICODE_SCRIPT_SINHALA: GUnicodeScript = 33; +pub const G_UNICODE_SCRIPT_SYRIAC: GUnicodeScript = 34; +pub const G_UNICODE_SCRIPT_TAMIL: GUnicodeScript = 35; +pub const G_UNICODE_SCRIPT_TELUGU: GUnicodeScript = 36; +pub const G_UNICODE_SCRIPT_THAANA: GUnicodeScript = 37; +pub const G_UNICODE_SCRIPT_THAI: GUnicodeScript = 38; +pub const G_UNICODE_SCRIPT_TIBETAN: GUnicodeScript = 39; +pub const G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL: GUnicodeScript = 40; +pub const G_UNICODE_SCRIPT_YI: GUnicodeScript = 41; +pub const G_UNICODE_SCRIPT_TAGALOG: GUnicodeScript = 42; +pub const G_UNICODE_SCRIPT_HANUNOO: GUnicodeScript = 43; +pub const G_UNICODE_SCRIPT_BUHID: GUnicodeScript = 44; +pub const G_UNICODE_SCRIPT_TAGBANWA: GUnicodeScript = 45; +pub const G_UNICODE_SCRIPT_BRAILLE: GUnicodeScript = 46; +pub const G_UNICODE_SCRIPT_CYPRIOT: GUnicodeScript = 47; +pub const G_UNICODE_SCRIPT_LIMBU: GUnicodeScript = 48; +pub const G_UNICODE_SCRIPT_OSMANYA: GUnicodeScript = 49; +pub const G_UNICODE_SCRIPT_SHAVIAN: GUnicodeScript = 50; +pub const G_UNICODE_SCRIPT_LINEAR_B: GUnicodeScript = 51; +pub const G_UNICODE_SCRIPT_TAI_LE: GUnicodeScript = 52; +pub const G_UNICODE_SCRIPT_UGARITIC: GUnicodeScript = 53; +pub const G_UNICODE_SCRIPT_NEW_TAI_LUE: GUnicodeScript = 54; +pub const G_UNICODE_SCRIPT_BUGINESE: GUnicodeScript = 55; +pub const G_UNICODE_SCRIPT_GLAGOLITIC: GUnicodeScript = 56; +pub const G_UNICODE_SCRIPT_TIFINAGH: GUnicodeScript = 57; +pub const G_UNICODE_SCRIPT_SYLOTI_NAGRI: GUnicodeScript = 58; +pub const G_UNICODE_SCRIPT_OLD_PERSIAN: GUnicodeScript = 59; +pub const G_UNICODE_SCRIPT_KHAROSHTHI: GUnicodeScript = 60; +pub const G_UNICODE_SCRIPT_UNKNOWN: GUnicodeScript = 61; +pub const G_UNICODE_SCRIPT_BALINESE: GUnicodeScript = 62; +pub const G_UNICODE_SCRIPT_CUNEIFORM: GUnicodeScript = 63; +pub const G_UNICODE_SCRIPT_PHOENICIAN: GUnicodeScript = 64; +pub const G_UNICODE_SCRIPT_PHAGS_PA: GUnicodeScript = 65; +pub const G_UNICODE_SCRIPT_NKO: GUnicodeScript = 66; +pub const G_UNICODE_SCRIPT_KAYAH_LI: GUnicodeScript = 67; +pub const G_UNICODE_SCRIPT_LEPCHA: GUnicodeScript = 68; +pub const G_UNICODE_SCRIPT_REJANG: GUnicodeScript = 69; +pub const G_UNICODE_SCRIPT_SUNDANESE: GUnicodeScript = 70; +pub const G_UNICODE_SCRIPT_SAURASHTRA: GUnicodeScript = 71; +pub const G_UNICODE_SCRIPT_CHAM: GUnicodeScript = 72; +pub const G_UNICODE_SCRIPT_OL_CHIKI: GUnicodeScript = 73; +pub const G_UNICODE_SCRIPT_VAI: GUnicodeScript = 74; +pub const G_UNICODE_SCRIPT_CARIAN: GUnicodeScript = 75; +pub const G_UNICODE_SCRIPT_LYCIAN: GUnicodeScript = 76; +pub const G_UNICODE_SCRIPT_LYDIAN: GUnicodeScript = 77; +pub const G_UNICODE_SCRIPT_AVESTAN: GUnicodeScript = 78; +pub const G_UNICODE_SCRIPT_BAMUM: GUnicodeScript = 79; +pub const G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS: GUnicodeScript = 80; +pub const G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC: GUnicodeScript = 81; +pub const G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI: GUnicodeScript = 82; +pub const G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN: GUnicodeScript = 83; +pub const G_UNICODE_SCRIPT_JAVANESE: GUnicodeScript = 84; +pub const G_UNICODE_SCRIPT_KAITHI: GUnicodeScript = 85; +pub const G_UNICODE_SCRIPT_LISU: GUnicodeScript = 86; +pub const G_UNICODE_SCRIPT_MEETEI_MAYEK: GUnicodeScript = 87; +pub const G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN: GUnicodeScript = 88; +pub const G_UNICODE_SCRIPT_OLD_TURKIC: GUnicodeScript = 89; +pub const G_UNICODE_SCRIPT_SAMARITAN: GUnicodeScript = 90; +pub const G_UNICODE_SCRIPT_TAI_THAM: GUnicodeScript = 91; +pub const G_UNICODE_SCRIPT_TAI_VIET: GUnicodeScript = 92; +pub const G_UNICODE_SCRIPT_BATAK: GUnicodeScript = 93; +pub const G_UNICODE_SCRIPT_BRAHMI: GUnicodeScript = 94; +pub const G_UNICODE_SCRIPT_MANDAIC: GUnicodeScript = 95; +pub const G_UNICODE_SCRIPT_CHAKMA: GUnicodeScript = 96; +pub const G_UNICODE_SCRIPT_MEROITIC_CURSIVE: GUnicodeScript = 97; +pub const G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: GUnicodeScript = 98; +pub const G_UNICODE_SCRIPT_MIAO: GUnicodeScript = 99; +pub const G_UNICODE_SCRIPT_SHARADA: GUnicodeScript = 100; +pub const G_UNICODE_SCRIPT_SORA_SOMPENG: GUnicodeScript = 101; +pub const G_UNICODE_SCRIPT_TAKRI: GUnicodeScript = 102; +pub const G_UNICODE_SCRIPT_BASSA_VAH: GUnicodeScript = 103; +pub const G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: GUnicodeScript = 104; +pub const G_UNICODE_SCRIPT_DUPLOYAN: GUnicodeScript = 105; +pub const G_UNICODE_SCRIPT_ELBASAN: GUnicodeScript = 106; +pub const G_UNICODE_SCRIPT_GRANTHA: GUnicodeScript = 107; +pub const G_UNICODE_SCRIPT_KHOJKI: GUnicodeScript = 108; +pub const G_UNICODE_SCRIPT_KHUDAWADI: GUnicodeScript = 109; +pub const G_UNICODE_SCRIPT_LINEAR_A: GUnicodeScript = 110; +pub const G_UNICODE_SCRIPT_MAHAJANI: GUnicodeScript = 111; +pub const G_UNICODE_SCRIPT_MANICHAEAN: GUnicodeScript = 112; +pub const G_UNICODE_SCRIPT_MENDE_KIKAKUI: GUnicodeScript = 113; +pub const G_UNICODE_SCRIPT_MODI: GUnicodeScript = 114; +pub const G_UNICODE_SCRIPT_MRO: GUnicodeScript = 115; +pub const G_UNICODE_SCRIPT_NABATAEAN: GUnicodeScript = 116; +pub const G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: GUnicodeScript = 117; +pub const G_UNICODE_SCRIPT_OLD_PERMIC: GUnicodeScript = 118; +pub const G_UNICODE_SCRIPT_PAHAWH_HMONG: GUnicodeScript = 119; +pub const G_UNICODE_SCRIPT_PALMYRENE: GUnicodeScript = 120; +pub const G_UNICODE_SCRIPT_PAU_CIN_HAU: GUnicodeScript = 121; +pub const G_UNICODE_SCRIPT_PSALTER_PAHLAVI: GUnicodeScript = 122; +pub const G_UNICODE_SCRIPT_SIDDHAM: GUnicodeScript = 123; +pub const G_UNICODE_SCRIPT_TIRHUTA: GUnicodeScript = 124; +pub const G_UNICODE_SCRIPT_WARANG_CITI: GUnicodeScript = 125; +pub const G_UNICODE_SCRIPT_AHOM: GUnicodeScript = 126; +pub const G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: GUnicodeScript = 127; +pub const G_UNICODE_SCRIPT_HATRAN: GUnicodeScript = 128; +pub const G_UNICODE_SCRIPT_MULTANI: GUnicodeScript = 129; +pub const G_UNICODE_SCRIPT_OLD_HUNGARIAN: GUnicodeScript = 130; +pub const G_UNICODE_SCRIPT_SIGNWRITING: GUnicodeScript = 131; +pub const G_UNICODE_SCRIPT_ADLAM: GUnicodeScript = 132; +pub const G_UNICODE_SCRIPT_BHAIKSUKI: GUnicodeScript = 133; +pub const G_UNICODE_SCRIPT_MARCHEN: GUnicodeScript = 134; +pub const G_UNICODE_SCRIPT_NEWA: GUnicodeScript = 135; +pub const G_UNICODE_SCRIPT_OSAGE: GUnicodeScript = 136; +pub const G_UNICODE_SCRIPT_TANGUT: GUnicodeScript = 137; +pub const G_UNICODE_SCRIPT_MASARAM_GONDI: GUnicodeScript = 138; +pub const G_UNICODE_SCRIPT_NUSHU: GUnicodeScript = 139; +pub const G_UNICODE_SCRIPT_SOYOMBO: GUnicodeScript = 140; +pub const G_UNICODE_SCRIPT_ZANABAZAR_SQUARE: GUnicodeScript = 141; +pub const G_UNICODE_SCRIPT_DOGRA: GUnicodeScript = 142; +pub const G_UNICODE_SCRIPT_GUNJALA_GONDI: GUnicodeScript = 143; +pub const G_UNICODE_SCRIPT_HANIFI_ROHINGYA: GUnicodeScript = 144; +pub const G_UNICODE_SCRIPT_MAKASAR: GUnicodeScript = 145; +pub const G_UNICODE_SCRIPT_MEDEFAIDRIN: GUnicodeScript = 146; +pub const G_UNICODE_SCRIPT_OLD_SOGDIAN: GUnicodeScript = 147; +pub const G_UNICODE_SCRIPT_SOGDIAN: GUnicodeScript = 148; +pub const G_UNICODE_SCRIPT_ELYMAIC: GUnicodeScript = 149; +pub const G_UNICODE_SCRIPT_NANDINAGARI: GUnicodeScript = 150; +pub const G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG: GUnicodeScript = 151; +pub const G_UNICODE_SCRIPT_WANCHO: GUnicodeScript = 152; +pub const G_UNICODE_SCRIPT_CHORASMIAN: GUnicodeScript = 153; +pub const G_UNICODE_SCRIPT_DIVES_AKURU: GUnicodeScript = 154; +pub const G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT: GUnicodeScript = 155; +pub const G_UNICODE_SCRIPT_YEZIDI: GUnicodeScript = 156; +pub const G_UNICODE_SCRIPT_CYPRO_MINOAN: GUnicodeScript = 157; +pub const G_UNICODE_SCRIPT_OLD_UYGHUR: GUnicodeScript = 158; +pub const G_UNICODE_SCRIPT_TANGSA: GUnicodeScript = 159; +pub const G_UNICODE_SCRIPT_TOTO: GUnicodeScript = 160; +pub const G_UNICODE_SCRIPT_VITHKUQI: GUnicodeScript = 161; +pub const G_UNICODE_SCRIPT_MATH: GUnicodeScript = 162; +pub const G_UNICODE_SCRIPT_KAWI: GUnicodeScript = 163; +pub const G_UNICODE_SCRIPT_NAG_MUNDARI: GUnicodeScript = 164; + +pub type GUnicodeType = c_int; +pub const G_UNICODE_CONTROL: GUnicodeType = 0; +pub const G_UNICODE_FORMAT: GUnicodeType = 1; +pub const G_UNICODE_UNASSIGNED: GUnicodeType = 2; +pub const G_UNICODE_PRIVATE_USE: GUnicodeType = 3; +pub const G_UNICODE_SURROGATE: GUnicodeType = 4; +pub const G_UNICODE_LOWERCASE_LETTER: GUnicodeType = 5; +pub const G_UNICODE_MODIFIER_LETTER: GUnicodeType = 6; +pub const G_UNICODE_OTHER_LETTER: GUnicodeType = 7; +pub const G_UNICODE_TITLECASE_LETTER: GUnicodeType = 8; +pub const G_UNICODE_UPPERCASE_LETTER: GUnicodeType = 9; +pub const G_UNICODE_SPACING_MARK: GUnicodeType = 10; +pub const G_UNICODE_ENCLOSING_MARK: GUnicodeType = 11; +pub const G_UNICODE_NON_SPACING_MARK: GUnicodeType = 12; +pub const G_UNICODE_DECIMAL_NUMBER: GUnicodeType = 13; +pub const G_UNICODE_LETTER_NUMBER: GUnicodeType = 14; +pub const G_UNICODE_OTHER_NUMBER: GUnicodeType = 15; +pub const G_UNICODE_CONNECT_PUNCTUATION: GUnicodeType = 16; +pub const G_UNICODE_DASH_PUNCTUATION: GUnicodeType = 17; +pub const G_UNICODE_CLOSE_PUNCTUATION: GUnicodeType = 18; +pub const G_UNICODE_FINAL_PUNCTUATION: GUnicodeType = 19; +pub const G_UNICODE_INITIAL_PUNCTUATION: GUnicodeType = 20; +pub const G_UNICODE_OTHER_PUNCTUATION: GUnicodeType = 21; +pub const G_UNICODE_OPEN_PUNCTUATION: GUnicodeType = 22; +pub const G_UNICODE_CURRENCY_SYMBOL: GUnicodeType = 23; +pub const G_UNICODE_MODIFIER_SYMBOL: GUnicodeType = 24; +pub const G_UNICODE_MATH_SYMBOL: GUnicodeType = 25; +pub const G_UNICODE_OTHER_SYMBOL: GUnicodeType = 26; +pub const G_UNICODE_LINE_SEPARATOR: GUnicodeType = 27; +pub const G_UNICODE_PARAGRAPH_SEPARATOR: GUnicodeType = 28; +pub const G_UNICODE_SPACE_SEPARATOR: GUnicodeType = 29; + +pub type GUriError = c_int; +pub const G_URI_ERROR_FAILED: GUriError = 0; +pub const G_URI_ERROR_BAD_SCHEME: GUriError = 1; +pub const G_URI_ERROR_BAD_USER: GUriError = 2; +pub const G_URI_ERROR_BAD_PASSWORD: GUriError = 3; +pub const G_URI_ERROR_BAD_AUTH_PARAMS: GUriError = 4; +pub const G_URI_ERROR_BAD_HOST: GUriError = 5; +pub const G_URI_ERROR_BAD_PORT: GUriError = 6; +pub const G_URI_ERROR_BAD_PATH: GUriError = 7; +pub const G_URI_ERROR_BAD_QUERY: GUriError = 8; +pub const G_URI_ERROR_BAD_FRAGMENT: GUriError = 9; + +pub type GUserDirectory = c_int; +pub const G_USER_DIRECTORY_DESKTOP: GUserDirectory = 0; +pub const G_USER_DIRECTORY_DOCUMENTS: GUserDirectory = 1; +pub const G_USER_DIRECTORY_DOWNLOAD: GUserDirectory = 2; +pub const G_USER_DIRECTORY_MUSIC: GUserDirectory = 3; +pub const G_USER_DIRECTORY_PICTURES: GUserDirectory = 4; +pub const G_USER_DIRECTORY_PUBLIC_SHARE: GUserDirectory = 5; +pub const G_USER_DIRECTORY_TEMPLATES: GUserDirectory = 6; +pub const G_USER_DIRECTORY_VIDEOS: GUserDirectory = 7; +pub const G_USER_N_DIRECTORIES: GUserDirectory = 8; + +pub type GVariantClass = c_int; +pub const G_VARIANT_CLASS_BOOLEAN: GVariantClass = 98; +pub const G_VARIANT_CLASS_BYTE: GVariantClass = 121; +pub const G_VARIANT_CLASS_INT16: GVariantClass = 110; +pub const G_VARIANT_CLASS_UINT16: GVariantClass = 113; +pub const G_VARIANT_CLASS_INT32: GVariantClass = 105; +pub const G_VARIANT_CLASS_UINT32: GVariantClass = 117; +pub const G_VARIANT_CLASS_INT64: GVariantClass = 120; +pub const G_VARIANT_CLASS_UINT64: GVariantClass = 116; +pub const G_VARIANT_CLASS_HANDLE: GVariantClass = 104; +pub const G_VARIANT_CLASS_DOUBLE: GVariantClass = 100; +pub const G_VARIANT_CLASS_STRING: GVariantClass = 115; +pub const G_VARIANT_CLASS_OBJECT_PATH: GVariantClass = 111; +pub const G_VARIANT_CLASS_SIGNATURE: GVariantClass = 103; +pub const G_VARIANT_CLASS_VARIANT: GVariantClass = 118; +pub const G_VARIANT_CLASS_MAYBE: GVariantClass = 109; +pub const G_VARIANT_CLASS_ARRAY: GVariantClass = 97; +pub const G_VARIANT_CLASS_TUPLE: GVariantClass = 40; +pub const G_VARIANT_CLASS_DICT_ENTRY: GVariantClass = 123; + +pub type GVariantParseError = c_int; +pub const G_VARIANT_PARSE_ERROR_FAILED: GVariantParseError = 0; +pub const G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: GVariantParseError = 1; +pub const G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: GVariantParseError = 2; +pub const G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: GVariantParseError = 3; +pub const G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: GVariantParseError = 4; +pub const G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: GVariantParseError = 5; +pub const G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: GVariantParseError = 6; +pub const G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: GVariantParseError = 7; +pub const G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: GVariantParseError = 8; +pub const G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: GVariantParseError = 9; +pub const G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: GVariantParseError = 10; +pub const G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: GVariantParseError = 11; +pub const G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: GVariantParseError = 12; +pub const G_VARIANT_PARSE_ERROR_TYPE_ERROR: GVariantParseError = 13; +pub const G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: GVariantParseError = 14; +pub const G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: GVariantParseError = 15; +pub const G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT: GVariantParseError = 16; +pub const G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: GVariantParseError = 17; +pub const G_VARIANT_PARSE_ERROR_RECURSION: GVariantParseError = 18; + +// Constants +pub const G_ASCII_DTOSTR_BUF_SIZE: c_int = 39; +pub const G_BIG_ENDIAN: c_int = 4321; +pub const G_CSET_A_2_Z: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\0"; +pub const G_CSET_DIGITS: &[u8] = b"0123456789\0"; +pub const G_CSET_a_2_z: &[u8] = b"abcdefghijklmnopqrstuvwxyz\0"; +pub const G_DATALIST_FLAGS_MASK: c_int = 3; +pub const G_DATE_BAD_DAY: c_int = 0; +pub const G_DATE_BAD_JULIAN: c_int = 0; +pub const G_DATE_BAD_YEAR: c_int = 0; +pub const G_E: c_double = 2.718282; +pub const G_HOOK_FLAG_USER_SHIFT: c_int = 4; +pub const G_IEEE754_DOUBLE_BIAS: c_int = 1023; +pub const G_IEEE754_FLOAT_BIAS: c_int = 127; +pub const G_KEY_FILE_DESKTOP_GROUP: &[u8] = b"Desktop Entry\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ACTIONS: &[u8] = b"Actions\0"; +pub const G_KEY_FILE_DESKTOP_KEY_CATEGORIES: &[u8] = b"Categories\0"; +pub const G_KEY_FILE_DESKTOP_KEY_COMMENT: &[u8] = b"Comment\0"; +pub const G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE: &[u8] = b"DBusActivatable\0"; +pub const G_KEY_FILE_DESKTOP_KEY_EXEC: &[u8] = b"Exec\0"; +pub const G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME: &[u8] = b"GenericName\0"; +pub const G_KEY_FILE_DESKTOP_KEY_HIDDEN: &[u8] = b"Hidden\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ICON: &[u8] = b"Icon\0"; +pub const G_KEY_FILE_DESKTOP_KEY_MIME_TYPE: &[u8] = b"MimeType\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NAME: &[u8] = b"Name\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN: &[u8] = b"NotShowIn\0"; +pub const G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY: &[u8] = b"NoDisplay\0"; +pub const G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN: &[u8] = b"OnlyShowIn\0"; +pub const G_KEY_FILE_DESKTOP_KEY_PATH: &[u8] = b"Path\0"; +pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY: &[u8] = b"StartupNotify\0"; +pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS: &[u8] = b"StartupWMClass\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TERMINAL: &[u8] = b"Terminal\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TRY_EXEC: &[u8] = b"TryExec\0"; +pub const G_KEY_FILE_DESKTOP_KEY_TYPE: &[u8] = b"Type\0"; +pub const G_KEY_FILE_DESKTOP_KEY_URL: &[u8] = b"URL\0"; +pub const G_KEY_FILE_DESKTOP_KEY_VERSION: &[u8] = b"Version\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_APPLICATION: &[u8] = b"Application\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_DIRECTORY: &[u8] = b"Directory\0"; +pub const G_KEY_FILE_DESKTOP_TYPE_LINK: &[u8] = b"Link\0"; +pub const G_LITTLE_ENDIAN: c_int = 1234; +pub const G_LN10: c_double = 2.302585; +pub const G_LN2: c_double = 0.693147; +pub const G_LOG_2_BASE_10: c_double = 0.301030; +pub const G_LOG_FATAL_MASK: c_int = 5; +pub const G_LOG_LEVEL_USER_SHIFT: c_int = 8; +pub const G_OPTION_REMAINING: &[u8] = b"\0"; +pub const G_PDP_ENDIAN: c_int = 3412; +pub const G_PI: c_double = 3.141593; +pub const G_PI_2: c_double = 1.570796; +pub const G_PI_4: c_double = 0.785398; +pub const G_PRIORITY_DEFAULT: c_int = 0; +pub const G_PRIORITY_DEFAULT_IDLE: c_int = 200; +pub const G_PRIORITY_HIGH: c_int = -100; +pub const G_PRIORITY_HIGH_IDLE: c_int = 100; +pub const G_PRIORITY_LOW: c_int = 300; +pub const G_SOURCE_CONTINUE: gboolean = GTRUE; +pub const G_SOURCE_REMOVE: gboolean = GFALSE; +pub const G_SQRT2: c_double = 1.414214; +pub const G_STR_DELIMITERS: &[u8] = b"_-|> <.\0"; +pub const GLIB_SYSDEF_AF_INET: c_int = 2; +pub const GLIB_SYSDEF_AF_INET6: c_int = 10; +pub const GLIB_SYSDEF_AF_UNIX: c_int = 1; +pub const GLIB_SYSDEF_MSG_DONTROUTE: c_int = 4; +pub const GLIB_SYSDEF_MSG_OOB: c_int = 1; +pub const GLIB_SYSDEF_MSG_PEEK: c_int = 2; +pub const G_TEST_OPTION_ISOLATE_DIRS: &[u8] = b"isolate_dirs\0"; +pub const G_TIME_SPAN_DAY: i64 = 86400000000; +pub const G_TIME_SPAN_HOUR: i64 = 3600000000; +pub const G_TIME_SPAN_MILLISECOND: i64 = 1000; +pub const G_TIME_SPAN_MINUTE: i64 = 60000000; +pub const G_TIME_SPAN_SECOND: i64 = 1000000; +pub const G_UNICHAR_MAX_DECOMPOSITION_LENGTH: c_int = 18; +pub const G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: &[u8] = b":/?#[]@\0"; +pub const G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: &[u8] = b"!$&'()*+,;=\0"; +pub const G_USEC_PER_SEC: c_int = 1000000; +pub const G_WIN32_MSG_HANDLE: c_int = 19981206; + +// Flags +pub type GAsciiType = c_uint; +pub const G_ASCII_ALNUM: GAsciiType = 1; +pub const G_ASCII_ALPHA: GAsciiType = 2; +pub const G_ASCII_CNTRL: GAsciiType = 4; +pub const G_ASCII_DIGIT: GAsciiType = 8; +pub const G_ASCII_GRAPH: GAsciiType = 16; +pub const G_ASCII_LOWER: GAsciiType = 32; +pub const G_ASCII_PRINT: GAsciiType = 64; +pub const G_ASCII_PUNCT: GAsciiType = 128; +pub const G_ASCII_SPACE: GAsciiType = 256; +pub const G_ASCII_UPPER: GAsciiType = 512; +pub const G_ASCII_XDIGIT: GAsciiType = 1024; + +pub type GFileSetContentsFlags = c_uint; +pub const G_FILE_SET_CONTENTS_NONE: GFileSetContentsFlags = 0; +pub const G_FILE_SET_CONTENTS_CONSISTENT: GFileSetContentsFlags = 1; +pub const G_FILE_SET_CONTENTS_DURABLE: GFileSetContentsFlags = 2; +pub const G_FILE_SET_CONTENTS_ONLY_EXISTING: GFileSetContentsFlags = 4; + +pub type GFileTest = c_uint; +pub const G_FILE_TEST_IS_REGULAR: GFileTest = 1; +pub const G_FILE_TEST_IS_SYMLINK: GFileTest = 2; +pub const G_FILE_TEST_IS_DIR: GFileTest = 4; +pub const G_FILE_TEST_IS_EXECUTABLE: GFileTest = 8; +pub const G_FILE_TEST_EXISTS: GFileTest = 16; + +pub type GFormatSizeFlags = c_uint; +pub const G_FORMAT_SIZE_DEFAULT: GFormatSizeFlags = 0; +pub const G_FORMAT_SIZE_LONG_FORMAT: GFormatSizeFlags = 1; +pub const G_FORMAT_SIZE_IEC_UNITS: GFormatSizeFlags = 2; +pub const G_FORMAT_SIZE_BITS: GFormatSizeFlags = 4; +pub const G_FORMAT_SIZE_ONLY_VALUE: GFormatSizeFlags = 8; +pub const G_FORMAT_SIZE_ONLY_UNIT: GFormatSizeFlags = 16; + +pub type GHookFlagMask = c_uint; +pub const G_HOOK_FLAG_ACTIVE: GHookFlagMask = 1; +pub const G_HOOK_FLAG_IN_CALL: GHookFlagMask = 2; +pub const G_HOOK_FLAG_MASK: GHookFlagMask = 15; + +pub type GIOCondition = c_uint; +pub const G_IO_IN: GIOCondition = 1; +pub const G_IO_OUT: GIOCondition = 4; +pub const G_IO_PRI: GIOCondition = 2; +pub const G_IO_ERR: GIOCondition = 8; +pub const G_IO_HUP: GIOCondition = 16; +pub const G_IO_NVAL: GIOCondition = 32; + +pub type GIOFlags = c_uint; +pub const G_IO_FLAG_NONE: GIOFlags = 0; +pub const G_IO_FLAG_APPEND: GIOFlags = 1; +pub const G_IO_FLAG_NONBLOCK: GIOFlags = 2; +pub const G_IO_FLAG_IS_READABLE: GIOFlags = 4; +pub const G_IO_FLAG_IS_WRITABLE: GIOFlags = 8; +pub const G_IO_FLAG_IS_WRITEABLE: GIOFlags = 8; +pub const G_IO_FLAG_IS_SEEKABLE: GIOFlags = 16; +pub const G_IO_FLAG_MASK: GIOFlags = 31; +pub const G_IO_FLAG_GET_MASK: GIOFlags = 31; +pub const G_IO_FLAG_SET_MASK: GIOFlags = 3; + +pub type GKeyFileFlags = c_uint; +pub const G_KEY_FILE_NONE: GKeyFileFlags = 0; +pub const G_KEY_FILE_KEEP_COMMENTS: GKeyFileFlags = 1; +pub const G_KEY_FILE_KEEP_TRANSLATIONS: GKeyFileFlags = 2; + +pub type GLogLevelFlags = c_uint; +pub const G_LOG_FLAG_RECURSION: GLogLevelFlags = 1; +pub const G_LOG_FLAG_FATAL: GLogLevelFlags = 2; +pub const G_LOG_LEVEL_ERROR: GLogLevelFlags = 4; +pub const G_LOG_LEVEL_CRITICAL: GLogLevelFlags = 8; +pub const G_LOG_LEVEL_WARNING: GLogLevelFlags = 16; +pub const G_LOG_LEVEL_MESSAGE: GLogLevelFlags = 32; +pub const G_LOG_LEVEL_INFO: GLogLevelFlags = 64; +pub const G_LOG_LEVEL_DEBUG: GLogLevelFlags = 128; +pub const G_LOG_LEVEL_MASK: GLogLevelFlags = 4294967292; + +pub type GMainContextFlags = c_uint; +pub const G_MAIN_CONTEXT_FLAGS_NONE: GMainContextFlags = 0; +pub const G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING: GMainContextFlags = 1; + +pub type GMarkupCollectType = c_uint; +pub const G_MARKUP_COLLECT_INVALID: GMarkupCollectType = 0; +pub const G_MARKUP_COLLECT_STRING: GMarkupCollectType = 1; +pub const G_MARKUP_COLLECT_STRDUP: GMarkupCollectType = 2; +pub const G_MARKUP_COLLECT_BOOLEAN: GMarkupCollectType = 3; +pub const G_MARKUP_COLLECT_TRISTATE: GMarkupCollectType = 4; +pub const G_MARKUP_COLLECT_OPTIONAL: GMarkupCollectType = 65536; + +pub type GMarkupParseFlags = c_uint; +pub const G_MARKUP_DEFAULT_FLAGS: GMarkupParseFlags = 0; +pub const G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: GMarkupParseFlags = 1; +pub const G_MARKUP_TREAT_CDATA_AS_TEXT: GMarkupParseFlags = 2; +pub const G_MARKUP_PREFIX_ERROR_POSITION: GMarkupParseFlags = 4; +pub const G_MARKUP_IGNORE_QUALIFIED: GMarkupParseFlags = 8; + +pub type GOptionFlags = c_uint; +pub const G_OPTION_FLAG_NONE: GOptionFlags = 0; +pub const G_OPTION_FLAG_HIDDEN: GOptionFlags = 1; +pub const G_OPTION_FLAG_IN_MAIN: GOptionFlags = 2; +pub const G_OPTION_FLAG_REVERSE: GOptionFlags = 4; +pub const G_OPTION_FLAG_NO_ARG: GOptionFlags = 8; +pub const G_OPTION_FLAG_FILENAME: GOptionFlags = 16; +pub const G_OPTION_FLAG_OPTIONAL_ARG: GOptionFlags = 32; +pub const G_OPTION_FLAG_NOALIAS: GOptionFlags = 64; + +pub type GRegexCompileFlags = c_uint; +pub const G_REGEX_DEFAULT: GRegexCompileFlags = 0; +pub const G_REGEX_CASELESS: GRegexCompileFlags = 1; +pub const G_REGEX_MULTILINE: GRegexCompileFlags = 2; +pub const G_REGEX_DOTALL: GRegexCompileFlags = 4; +pub const G_REGEX_EXTENDED: GRegexCompileFlags = 8; +pub const G_REGEX_ANCHORED: GRegexCompileFlags = 16; +pub const G_REGEX_DOLLAR_ENDONLY: GRegexCompileFlags = 32; +pub const G_REGEX_UNGREEDY: GRegexCompileFlags = 512; +pub const G_REGEX_RAW: GRegexCompileFlags = 2048; +pub const G_REGEX_NO_AUTO_CAPTURE: GRegexCompileFlags = 4096; +pub const G_REGEX_OPTIMIZE: GRegexCompileFlags = 8192; +pub const G_REGEX_FIRSTLINE: GRegexCompileFlags = 262144; +pub const G_REGEX_DUPNAMES: GRegexCompileFlags = 524288; +pub const G_REGEX_NEWLINE_CR: GRegexCompileFlags = 1048576; +pub const G_REGEX_NEWLINE_LF: GRegexCompileFlags = 2097152; +pub const G_REGEX_NEWLINE_CRLF: GRegexCompileFlags = 3145728; +pub const G_REGEX_NEWLINE_ANYCRLF: GRegexCompileFlags = 5242880; +pub const G_REGEX_BSR_ANYCRLF: GRegexCompileFlags = 8388608; +pub const G_REGEX_JAVASCRIPT_COMPAT: GRegexCompileFlags = 33554432; + +pub type GRegexMatchFlags = c_uint; +pub const G_REGEX_MATCH_DEFAULT: GRegexMatchFlags = 0; +pub const G_REGEX_MATCH_ANCHORED: GRegexMatchFlags = 16; +pub const G_REGEX_MATCH_NOTBOL: GRegexMatchFlags = 128; +pub const G_REGEX_MATCH_NOTEOL: GRegexMatchFlags = 256; +pub const G_REGEX_MATCH_NOTEMPTY: GRegexMatchFlags = 1024; +pub const G_REGEX_MATCH_PARTIAL: GRegexMatchFlags = 32768; +pub const G_REGEX_MATCH_NEWLINE_CR: GRegexMatchFlags = 1048576; +pub const G_REGEX_MATCH_NEWLINE_LF: GRegexMatchFlags = 2097152; +pub const G_REGEX_MATCH_NEWLINE_CRLF: GRegexMatchFlags = 3145728; +pub const G_REGEX_MATCH_NEWLINE_ANY: GRegexMatchFlags = 4194304; +pub const G_REGEX_MATCH_NEWLINE_ANYCRLF: GRegexMatchFlags = 5242880; +pub const G_REGEX_MATCH_BSR_ANYCRLF: GRegexMatchFlags = 8388608; +pub const G_REGEX_MATCH_BSR_ANY: GRegexMatchFlags = 16777216; +pub const G_REGEX_MATCH_PARTIAL_SOFT: GRegexMatchFlags = 32768; +pub const G_REGEX_MATCH_PARTIAL_HARD: GRegexMatchFlags = 134217728; +pub const G_REGEX_MATCH_NOTEMPTY_ATSTART: GRegexMatchFlags = 268435456; + +pub type GSpawnFlags = c_uint; +pub const G_SPAWN_DEFAULT: GSpawnFlags = 0; +pub const G_SPAWN_LEAVE_DESCRIPTORS_OPEN: GSpawnFlags = 1; +pub const G_SPAWN_DO_NOT_REAP_CHILD: GSpawnFlags = 2; +pub const G_SPAWN_SEARCH_PATH: GSpawnFlags = 4; +pub const G_SPAWN_STDOUT_TO_DEV_NULL: GSpawnFlags = 8; +pub const G_SPAWN_STDERR_TO_DEV_NULL: GSpawnFlags = 16; +pub const G_SPAWN_CHILD_INHERITS_STDIN: GSpawnFlags = 32; +pub const G_SPAWN_FILE_AND_ARGV_ZERO: GSpawnFlags = 64; +pub const G_SPAWN_SEARCH_PATH_FROM_ENVP: GSpawnFlags = 128; +pub const G_SPAWN_CLOEXEC_PIPES: GSpawnFlags = 256; +#[cfg(any(feature = "v2_74", feature = "dox"))] +#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] +pub const G_SPAWN_CHILD_INHERITS_STDOUT: GSpawnFlags = 512; +#[cfg(any(feature = "v2_74", feature = "dox"))] +#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] +pub const G_SPAWN_CHILD_INHERITS_STDERR: GSpawnFlags = 1024; +#[cfg(any(feature = "v2_74", feature = "dox"))] +#[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] +pub const G_SPAWN_STDIN_FROM_DEV_NULL: GSpawnFlags = 2048; + +pub type GTestSubprocessFlags = c_uint; +pub const G_TEST_SUBPROCESS_DEFAULT: GTestSubprocessFlags = 0; +pub const G_TEST_SUBPROCESS_INHERIT_STDIN: GTestSubprocessFlags = 1; +pub const G_TEST_SUBPROCESS_INHERIT_STDOUT: GTestSubprocessFlags = 2; +pub const G_TEST_SUBPROCESS_INHERIT_STDERR: GTestSubprocessFlags = 4; + +pub type GTestTrapFlags = c_uint; +pub const G_TEST_TRAP_DEFAULT: GTestTrapFlags = 0; +pub const G_TEST_TRAP_SILENCE_STDOUT: GTestTrapFlags = 128; +pub const G_TEST_TRAP_SILENCE_STDERR: GTestTrapFlags = 256; +pub const G_TEST_TRAP_INHERIT_STDIN: GTestTrapFlags = 512; + +pub type GTraverseFlags = c_uint; +pub const G_TRAVERSE_LEAVES: GTraverseFlags = 1; +pub const G_TRAVERSE_NON_LEAVES: GTraverseFlags = 2; +pub const G_TRAVERSE_ALL: GTraverseFlags = 3; +pub const G_TRAVERSE_MASK: GTraverseFlags = 3; +pub const G_TRAVERSE_LEAFS: GTraverseFlags = 1; +pub const G_TRAVERSE_NON_LEAFS: GTraverseFlags = 2; + +pub type GUriFlags = c_uint; +pub const G_URI_FLAGS_NONE: GUriFlags = 0; +pub const G_URI_FLAGS_PARSE_RELAXED: GUriFlags = 1; +pub const G_URI_FLAGS_HAS_PASSWORD: GUriFlags = 2; +pub const G_URI_FLAGS_HAS_AUTH_PARAMS: GUriFlags = 4; +pub const G_URI_FLAGS_ENCODED: GUriFlags = 8; +pub const G_URI_FLAGS_NON_DNS: GUriFlags = 16; +pub const G_URI_FLAGS_ENCODED_QUERY: GUriFlags = 32; +pub const G_URI_FLAGS_ENCODED_PATH: GUriFlags = 64; +pub const G_URI_FLAGS_ENCODED_FRAGMENT: GUriFlags = 128; +pub const G_URI_FLAGS_SCHEME_NORMALIZE: GUriFlags = 256; + +pub type GUriHideFlags = c_uint; +pub const G_URI_HIDE_NONE: GUriHideFlags = 0; +pub const G_URI_HIDE_USERINFO: GUriHideFlags = 1; +pub const G_URI_HIDE_PASSWORD: GUriHideFlags = 2; +pub const G_URI_HIDE_AUTH_PARAMS: GUriHideFlags = 4; +pub const G_URI_HIDE_QUERY: GUriHideFlags = 8; +pub const G_URI_HIDE_FRAGMENT: GUriHideFlags = 16; + +pub type GUriParamsFlags = c_uint; +pub const G_URI_PARAMS_NONE: GUriParamsFlags = 0; +pub const G_URI_PARAMS_CASE_INSENSITIVE: GUriParamsFlags = 1; +pub const G_URI_PARAMS_WWW_FORM: GUriParamsFlags = 2; +pub const G_URI_PARAMS_PARSE_RELAXED: GUriParamsFlags = 4; + +// Unions +#[repr(C)] +pub struct GDoubleIEEE754 { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GDoubleIEEE754 { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GDoubleIEEE754 @ {self:p}")) + .finish() + } +} + +#[repr(C)] +pub struct GFloatIEEE754 { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GFloatIEEE754 { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GFloatIEEE754 @ {self:p}")) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub union GMutex { + pub p: gpointer, + pub i: [c_uint; 2], +} + +impl ::std::fmt::Debug for GMutex { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMutex @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub union GTokenValue { + pub v_symbol: gpointer, + pub v_identifier: *mut c_char, + pub v_binary: c_ulong, + pub v_octal: c_ulong, + pub v_int: c_ulong, + pub v_int64: u64, + pub v_float: c_double, + pub v_hex: c_ulong, + pub v_string: *mut c_char, + pub v_comment: *mut c_char, + pub v_char: c_uchar, + pub v_error: c_uint, +} + +impl ::std::fmt::Debug for GTokenValue { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTokenValue @ {self:p}")) + .field("v_symbol", unsafe { &self.v_symbol }) + .field("v_identifier", unsafe { &self.v_identifier }) + .field("v_binary", unsafe { &self.v_binary }) + .field("v_octal", unsafe { &self.v_octal }) + .field("v_int", unsafe { &self.v_int }) + .field("v_int64", unsafe { &self.v_int64 }) + .field("v_float", unsafe { &self.v_float }) + .field("v_hex", unsafe { &self.v_hex }) + .field("v_string", unsafe { &self.v_string }) + .field("v_comment", unsafe { &self.v_comment }) + .field("v_char", unsafe { &self.v_char }) + .field("v_error", unsafe { &self.v_error }) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub union GVariantBuilder_u { + pub s: GVariantBuilder_u_s, + pub x: [size_t; 16], +} + +impl ::std::fmt::Debug for GVariantBuilder_u { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantBuilder_u @ {self:p}")) + .field("s", unsafe { &self.s }) + .field("x", unsafe { &self.x }) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub union GVariantDict_u { + pub s: GVariantDict_u_s, + pub x: [size_t; 16], +} + +impl ::std::fmt::Debug for GVariantDict_u { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantDict_u @ {self:p}")) + .field("s", unsafe { &self.s }) + .field("x", unsafe { &self.x }) + .finish() + } +} + +// Callbacks +pub type GChildWatchFunc = Option; +pub type GClearHandleFunc = Option; +pub type GCompareDataFunc = + Option c_int>; +pub type GCompareFunc = Option c_int>; +pub type GCopyFunc = Option gpointer>; +pub type GDataForeachFunc = Option; +pub type GDestroyNotify = Option; +pub type GDuplicateFunc = Option gpointer>; +pub type GEqualFunc = Option gboolean>; +pub type GEqualFuncFull = + Option gboolean>; +pub type GErrorClearFunc = Option; +pub type GErrorCopyFunc = Option; +pub type GErrorInitFunc = Option; +pub type GFreeFunc = Option; +pub type GFunc = Option; +pub type GHFunc = Option; +pub type GHRFunc = Option gboolean>; +pub type GHashFunc = Option c_uint>; +pub type GHookCheckFunc = Option gboolean>; +pub type GHookCheckMarshaller = Option gboolean>; +pub type GHookCompareFunc = Option c_int>; +pub type GHookFinalizeFunc = Option; +pub type GHookFindFunc = Option gboolean>; +pub type GHookFunc = Option; +pub type GHookMarshaller = Option; +pub type GIOFunc = + Option gboolean>; +pub type GLogFunc = + Option; +pub type GLogWriterFunc = Option< + unsafe extern "C" fn(GLogLevelFlags, *const GLogField, size_t, gpointer) -> GLogWriterOutput, +>; +pub type GNodeForeachFunc = Option; +pub type GNodeTraverseFunc = Option gboolean>; +pub type GOptionArgFunc = Option< + unsafe extern "C" fn(*const c_char, *const c_char, gpointer, *mut *mut GError) -> gboolean, +>; +pub type GOptionErrorFunc = Option< + unsafe extern "C" fn(*mut GOptionContext, *mut GOptionGroup, gpointer, *mut *mut GError), +>; +pub type GOptionParseFunc = Option< + unsafe extern "C" fn( + *mut GOptionContext, + *mut GOptionGroup, + gpointer, + *mut *mut GError, + ) -> gboolean, +>; +pub type GPollFunc = Option c_int>; +pub type GPrintFunc = Option; +pub type GRegexEvalCallback = + Option gboolean>; +pub type GScannerMsgFunc = Option; +pub type GSequenceIterCompareFunc = + Option c_int>; +pub type GSourceDisposeFunc = Option; +pub type GSourceDummyMarshal = Option; +pub type GSourceFunc = Option gboolean>; +pub type GSourceOnceFunc = Option; +pub type GSpawnChildSetupFunc = Option; +pub type GTestDataFunc = Option; +pub type GTestFixtureFunc = Option; +pub type GTestFunc = Option; +pub type GTestLogFatalFunc = Option< + unsafe extern "C" fn(*const c_char, GLogLevelFlags, *const c_char, gpointer) -> gboolean, +>; +pub type GThreadFunc = Option gpointer>; +pub type GTranslateFunc = Option *const c_char>; +pub type GTraverseFunc = Option gboolean>; +pub type GTraverseNodeFunc = Option gboolean>; +pub type GUnixFDSourceFunc = + Option gboolean>; +pub type GVoidFunc = Option; + +// Records +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GArray { + pub data: *mut c_char, + pub len: c_uint, +} + +impl ::std::fmt::Debug for GArray { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GArray @ {self:p}")) + .field("data", &self.data) + .field("len", &self.len) + .finish() + } +} + +#[repr(C)] +pub struct _GAsyncQueue { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GAsyncQueue = *mut _GAsyncQueue; + +#[repr(C)] +pub struct GBookmarkFile { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GBookmarkFile { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GBookmarkFile @ {self:p}")) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GByteArray { + pub data: *mut u8, + pub len: c_uint, +} + +impl ::std::fmt::Debug for GByteArray { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GByteArray @ {self:p}")) + .field("data", &self.data) + .field("len", &self.len) + .finish() + } +} + +#[repr(C)] +pub struct GBytes { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GBytes { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GBytes @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GChecksum { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GChecksum { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GChecksum @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GCond { + pub p: gpointer, + pub i: [c_uint; 2], +} + +impl ::std::fmt::Debug for GCond { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GCond @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct _GData { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GData = *mut _GData; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GDate { + pub julian_days: c_uint, + pub flags_dmy: c_uint, +} + +impl ::std::fmt::Debug for GDate { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GDate @ {self:p}")) + .field("julian_days", &self.julian_days) + .field("flags_dmy", &self.flags_dmy) + .finish() + } +} + +#[repr(C)] +pub struct GDateTime { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GDateTime { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GDateTime @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GDebugKey { + pub key: *const c_char, + pub value: c_uint, +} + +impl ::std::fmt::Debug for GDebugKey { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GDebugKey @ {self:p}")) + .field("key", &self.key) + .field("value", &self.value) + .finish() + } +} + +#[repr(C)] +pub struct _GDir { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GDir = *mut _GDir; + +#[repr(C)] +pub struct GDoubleIEEE754_mpn { + pub mantissa_low: c_uint, + _truncated_record_marker: c_void, + // field mantissa_high has incomplete type +} + +impl ::std::fmt::Debug for GDoubleIEEE754_mpn { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GDoubleIEEE754_mpn @ {self:p}")) + .field("mantissa_low", &self.mantissa_low) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GError { + pub domain: GQuark, + pub code: c_int, + pub message: *mut c_char, +} + +impl ::std::fmt::Debug for GError { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GError @ {self:p}")) + .field("domain", &self.domain) + .field("code", &self.code) + .field("message", &self.message) + .finish() + } +} + +#[repr(C)] +pub struct GFloatIEEE754_mpn { + pub mantissa: c_uint, + _truncated_record_marker: c_void, + // field biased_exponent has incomplete type +} + +impl ::std::fmt::Debug for GFloatIEEE754_mpn { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GFloatIEEE754_mpn @ {self:p}")) + .field("mantissa", &self.mantissa) + .finish() + } +} + +#[repr(C)] +pub struct GHashTable { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GHashTable { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GHashTable @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GHashTableIter { + pub dummy1: gpointer, + pub dummy2: gpointer, + pub dummy3: gpointer, + pub dummy4: c_int, + pub dummy5: gboolean, + pub dummy6: gpointer, +} + +impl ::std::fmt::Debug for GHashTableIter { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GHashTableIter @ {self:p}")) + .finish() + } +} + +#[repr(C)] +pub struct _GHmac { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GHmac = *mut _GHmac; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GHook { + pub data: gpointer, + pub next: *mut GHook, + pub prev: *mut GHook, + pub ref_count: c_uint, + pub hook_id: c_ulong, + pub flags: c_uint, + pub func: gpointer, + pub destroy: GDestroyNotify, +} + +impl ::std::fmt::Debug for GHook { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GHook @ {self:p}")) + .field("data", &self.data) + .field("next", &self.next) + .field("prev", &self.prev) + .field("ref_count", &self.ref_count) + .field("hook_id", &self.hook_id) + .field("flags", &self.flags) + .field("func", &self.func) + .field("destroy", &self.destroy) + .finish() + } +} + +#[repr(C)] +#[derive(Copy, Clone)] +pub struct GHookList { + pub seq_id: c_ulong, + #[cfg(any(not(windows), not(target_pointer_width = "64")))] + pub hook_size_and_setup: gpointer, + #[cfg(all(windows, target_pointer_width = "64"))] + pub hook_size_and_setup: c_ulong, + pub hooks: *mut GHook, + pub dummy3: gpointer, + pub finalize_hook: GHookFinalizeFunc, + pub dummy: [gpointer; 2], +} + +impl ::std::fmt::Debug for GHookList { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + write!(f, "GHookList @ {self:p}") + } +} + +#[repr(C)] +pub struct _GIConv { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GIConv = *mut _GIConv; + +#[repr(C)] +pub struct GIOChannel { + pub ref_count: c_int, + pub funcs: *mut GIOFuncs, + pub encoding: *mut c_char, + pub read_cd: GIConv, + pub write_cd: GIConv, + pub line_term: *mut c_char, + pub line_term_len: c_uint, + pub buf_size: size_t, + pub read_buf: *mut GString, + pub encoded_read_buf: *mut GString, + pub write_buf: *mut GString, + pub partial_write_buf: [c_char; 6], + pub use_buffer: c_uint, + _truncated_record_marker: c_void, + // field do_encode has incomplete type +} + +impl ::std::fmt::Debug for GIOChannel { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GIOChannel @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GIOFuncs { + pub io_read: Option< + unsafe extern "C" fn( + *mut GIOChannel, + *const c_char, + size_t, + *mut size_t, + *mut *mut GError, + ) -> GIOStatus, + >, + pub io_write: Option< + unsafe extern "C" fn( + *mut GIOChannel, + *const c_char, + size_t, + *mut size_t, + *mut *mut GError, + ) -> GIOStatus, + >, + pub io_seek: Option< + unsafe extern "C" fn(*mut GIOChannel, i64, GSeekType, *mut *mut GError) -> GIOStatus, + >, + pub io_close: Option GIOStatus>, + pub io_create_watch: + Option *mut GSource>, + pub io_free: Option, + pub io_set_flags: + Option GIOStatus>, + pub io_get_flags: Option GIOFlags>, +} + +impl ::std::fmt::Debug for GIOFuncs { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GIOFuncs @ {self:p}")) + .field("io_read", &self.io_read) + .field("io_write", &self.io_write) + .field("io_seek", &self.io_seek) + .field("io_close", &self.io_close) + .field("io_create_watch", &self.io_create_watch) + .field("io_free", &self.io_free) + .field("io_set_flags", &self.io_set_flags) + .field("io_get_flags", &self.io_get_flags) + .finish() + } +} + +#[repr(C)] +pub struct GKeyFile { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GKeyFile { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GKeyFile @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GList { + pub data: gpointer, + pub next: *mut GList, + pub prev: *mut GList, +} + +impl ::std::fmt::Debug for GList { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GList @ {self:p}")) + .field("data", &self.data) + .field("next", &self.next) + .field("prev", &self.prev) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GLogField { + pub key: *const c_char, + pub value: gconstpointer, + pub length: ssize_t, +} + +impl ::std::fmt::Debug for GLogField { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GLogField @ {self:p}")) + .field("key", &self.key) + .field("value", &self.value) + .field("length", &self.length) + .finish() + } +} + +#[repr(C)] +pub struct GMainContext { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GMainContext { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMainContext @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GMainLoop { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GMainLoop { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMainLoop @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GMappedFile { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GMappedFile { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMappedFile @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GMarkupParseContext { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GMarkupParseContext { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMarkupParseContext @ {self:p}")) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GMarkupParser { + pub start_element: Option< + unsafe extern "C" fn( + *mut GMarkupParseContext, + *const c_char, + *mut *const c_char, + *mut *const c_char, + gpointer, + *mut *mut GError, + ), + >, + pub end_element: Option< + unsafe extern "C" fn(*mut GMarkupParseContext, *const c_char, gpointer, *mut *mut GError), + >, + pub text: Option< + unsafe extern "C" fn( + *mut GMarkupParseContext, + *const c_char, + size_t, + gpointer, + *mut *mut GError, + ), + >, + pub passthrough: Option< + unsafe extern "C" fn( + *mut GMarkupParseContext, + *const c_char, + size_t, + gpointer, + *mut *mut GError, + ), + >, + pub error: Option, +} + +impl ::std::fmt::Debug for GMarkupParser { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMarkupParser @ {self:p}")) + .field("start_element", &self.start_element) + .field("end_element", &self.end_element) + .field("text", &self.text) + .field("passthrough", &self.passthrough) + .field("error", &self.error) + .finish() + } +} + +#[repr(C)] +pub struct GMatchInfo { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GMatchInfo { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMatchInfo @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GMemVTable { + pub malloc: Option gpointer>, + pub realloc: Option gpointer>, + pub free: Option, + pub calloc: Option gpointer>, + pub try_malloc: Option gpointer>, + pub try_realloc: Option gpointer>, +} + +impl ::std::fmt::Debug for GMemVTable { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GMemVTable @ {self:p}")) + .field("malloc", &self.malloc) + .field("realloc", &self.realloc) + .field("free", &self.free) + .field("calloc", &self.calloc) + .field("try_malloc", &self.try_malloc) + .field("try_realloc", &self.try_realloc) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GNode { + pub data: gpointer, + pub next: *mut GNode, + pub prev: *mut GNode, + pub parent: *mut GNode, + pub children: *mut GNode, +} + +impl ::std::fmt::Debug for GNode { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GNode @ {self:p}")) + .field("data", &self.data) + .field("next", &self.next) + .field("prev", &self.prev) + .field("parent", &self.parent) + .field("children", &self.children) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GOnce { + pub status: GOnceStatus, + pub retval: gpointer, +} + +impl ::std::fmt::Debug for GOnce { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GOnce @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct _GOptionContext { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GOptionContext = *mut _GOptionContext; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GOptionEntry { + pub long_name: *const c_char, + pub short_name: c_char, + pub flags: c_int, + pub arg: GOptionArg, + pub arg_data: gpointer, + pub description: *const c_char, + pub arg_description: *const c_char, +} + +impl ::std::fmt::Debug for GOptionEntry { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GOptionEntry @ {self:p}")) + .field("long_name", &self.long_name) + .field("short_name", &self.short_name) + .field("flags", &self.flags) + .field("arg", &self.arg) + .field("arg_data", &self.arg_data) + .field("description", &self.description) + .field("arg_description", &self.arg_description) + .finish() + } +} + +#[repr(C)] +pub struct GOptionGroup { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GOptionGroup { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GOptionGroup @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GPathBuf { + pub dummy: [gpointer; 8], +} + +impl ::std::fmt::Debug for GPathBuf { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GPathBuf @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GPatternSpec { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GPatternSpec { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GPatternSpec @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GPrivate { + pub p: gpointer, + pub notify: GDestroyNotify, + pub future: [gpointer; 2], +} + +impl ::std::fmt::Debug for GPrivate { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GPrivate @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GPtrArray { + pub pdata: *mut gpointer, + pub len: c_uint, +} + +impl ::std::fmt::Debug for GPtrArray { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GPtrArray @ {self:p}")) + .field("pdata", &self.pdata) + .field("len", &self.len) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GQueue { + pub head: *mut GList, + pub tail: *mut GList, + pub length: c_uint, +} + +impl ::std::fmt::Debug for GQueue { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GQueue @ {self:p}")) + .field("head", &self.head) + .field("tail", &self.tail) + .field("length", &self.length) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GRWLock { + pub p: gpointer, + pub i: [c_uint; 2], +} + +impl ::std::fmt::Debug for GRWLock { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GRWLock @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct _GRand { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GRand = *mut _GRand; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GRecMutex { + pub p: gpointer, + pub i: [c_uint; 2], +} + +impl ::std::fmt::Debug for GRecMutex { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GRecMutex @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GRegex { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GRegex { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GRegex @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GSList { + pub data: gpointer, + pub next: *mut GSList, +} + +impl ::std::fmt::Debug for GSList { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GSList @ {self:p}")) + .field("data", &self.data) + .field("next", &self.next) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GScanner { + pub user_data: gpointer, + pub max_parse_errors: c_uint, + pub parse_errors: c_uint, + pub input_name: *const c_char, + pub qdata: *mut GData, + pub config: *mut GScannerConfig, + pub token: GTokenType, + pub value: GTokenValue, + pub line: c_uint, + pub position: c_uint, + pub next_token: GTokenType, + pub next_value: GTokenValue, + pub next_line: c_uint, + pub next_position: c_uint, + pub symbol_table: *mut GHashTable, + pub input_fd: c_int, + pub text: *const c_char, + pub text_end: *const c_char, + pub buffer: *mut c_char, + pub scope_id: c_uint, + pub msg_handler: GScannerMsgFunc, +} + +impl ::std::fmt::Debug for GScanner { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GScanner @ {self:p}")) + .field("user_data", &self.user_data) + .field("max_parse_errors", &self.max_parse_errors) + .field("parse_errors", &self.parse_errors) + .field("input_name", &self.input_name) + .field("qdata", &self.qdata) + .field("config", &self.config) + .field("token", &self.token) + .field("value", &self.value) + .field("line", &self.line) + .field("position", &self.position) + .field("next_token", &self.next_token) + .field("next_value", &self.next_value) + .field("next_line", &self.next_line) + .field("next_position", &self.next_position) + .field("msg_handler", &self.msg_handler) + .finish() + } +} + +#[repr(C)] +pub struct GScannerConfig { + pub cset_skip_characters: *mut c_char, + pub cset_identifier_first: *mut c_char, + pub cset_identifier_nth: *mut c_char, + pub cpair_comment_single: *mut c_char, + pub case_sensitive: c_uint, + _truncated_record_marker: c_void, + // field skip_comment_multi has incomplete type +} + +impl ::std::fmt::Debug for GScannerConfig { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GScannerConfig @ {self:p}")) + .field("cset_skip_characters", &self.cset_skip_characters) + .field("cset_identifier_first", &self.cset_identifier_first) + .field("cset_identifier_nth", &self.cset_identifier_nth) + .field("cpair_comment_single", &self.cpair_comment_single) + .field("case_sensitive", &self.case_sensitive) + .finish() + } +} + +#[repr(C)] +pub struct _GSequence { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GSequence = *mut _GSequence; + +#[repr(C)] +pub struct _GSequenceIter { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GSequenceIter = *mut _GSequenceIter; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GSource { + pub callback_data: gpointer, + pub callback_funcs: *mut GSourceCallbackFuncs, + pub source_funcs: *const GSourceFuncs, + pub ref_count: c_uint, + pub context: *mut GMainContext, + pub priority: c_int, + pub flags: c_uint, + pub source_id: c_uint, + pub poll_fds: *mut GSList, + pub prev: *mut GSource, + pub next: *mut GSource, + pub name: *mut c_char, + pub priv_: *mut GSourcePrivate, +} + +impl ::std::fmt::Debug for GSource { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GSource @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GSourceCallbackFuncs { + pub ref_: Option, + pub unref: Option, + pub get: Option, +} + +impl ::std::fmt::Debug for GSourceCallbackFuncs { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GSourceCallbackFuncs @ {self:p}")) + .field("ref_", &self.ref_) + .field("unref", &self.unref) + .field("get", &self.get) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GSourceFuncs { + pub prepare: Option gboolean>, + pub check: Option gboolean>, + pub dispatch: Option gboolean>, + pub finalize: Option, + pub closure_callback: GSourceFunc, + pub closure_marshal: GSourceDummyMarshal, +} + +impl ::std::fmt::Debug for GSourceFuncs { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GSourceFuncs @ {self:p}")) + .field("prepare", &self.prepare) + .field("check", &self.check) + .field("dispatch", &self.dispatch) + .field("finalize", &self.finalize) + .finish() + } +} + +#[repr(C)] +pub struct _GSourcePrivate { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GSourcePrivate = *mut _GSourcePrivate; + +#[repr(C)] +pub struct _GStatBuf { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GStatBuf = *mut _GStatBuf; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GString { + pub str: *mut c_char, + pub len: size_t, + pub allocated_len: size_t, +} + +impl ::std::fmt::Debug for GString { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GString @ {self:p}")) + .field("str", &self.str) + .field("len", &self.len) + .field("allocated_len", &self.allocated_len) + .finish() + } +} + +#[repr(C)] +pub struct _GStringChunk { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GStringChunk = *mut _GStringChunk; + +#[repr(C)] +pub struct _GStrvBuilder { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GStrvBuilder = *mut _GStrvBuilder; + +#[repr(C)] +pub struct _GTestCase { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GTestCase = *mut _GTestCase; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GTestConfig { + pub test_initialized: gboolean, + pub test_quick: gboolean, + pub test_perf: gboolean, + pub test_verbose: gboolean, + pub test_quiet: gboolean, + pub test_undefined: gboolean, +} + +impl ::std::fmt::Debug for GTestConfig { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTestConfig @ {self:p}")) + .field("test_initialized", &self.test_initialized) + .field("test_quick", &self.test_quick) + .field("test_perf", &self.test_perf) + .field("test_verbose", &self.test_verbose) + .field("test_quiet", &self.test_quiet) + .field("test_undefined", &self.test_undefined) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GTestLogBuffer { + pub data: *mut GString, + pub msgs: *mut GSList, +} + +impl ::std::fmt::Debug for GTestLogBuffer { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTestLogBuffer @ {self:p}")) + .finish() + } +} + +#[repr(C)] +pub struct _GTestSuite { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GTestSuite = *mut _GTestSuite; + +#[repr(C)] +pub struct GThread { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GThread { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GThread @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GThreadPool { + pub func: GFunc, + pub user_data: gpointer, + pub exclusive: gboolean, +} + +impl ::std::fmt::Debug for GThreadPool { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GThreadPool @ {self:p}")) + .field("func", &self.func) + .field("user_data", &self.user_data) + .field("exclusive", &self.exclusive) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GTimeVal { + pub tv_sec: c_long, + pub tv_usec: c_long, +} + +impl ::std::fmt::Debug for GTimeVal { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTimeVal @ {self:p}")) + .field("tv_sec", &self.tv_sec) + .field("tv_usec", &self.tv_usec) + .finish() + } +} + +#[repr(C)] +pub struct GTimeZone { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GTimeZone { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTimeZone @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct _GTimer { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GTimer = *mut _GTimer; + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GTrashStack { + pub next: *mut GTrashStack, +} + +impl ::std::fmt::Debug for GTrashStack { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTrashStack @ {self:p}")) + .field("next", &self.next) + .finish() + } +} + +#[repr(C)] +pub struct GTree { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GTree { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GTree @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct _GTreeNode { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +pub type GTreeNode = *mut _GTreeNode; + +#[repr(C)] +pub struct GUri { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GUri { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GUri @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GUriParamsIter { + pub dummy0: c_int, + pub dummy1: gpointer, + pub dummy2: gpointer, + pub dummy3: [u8; 256], +} + +impl ::std::fmt::Debug for GUriParamsIter { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GUriParamsIter @ {self:p}")) + .finish() + } +} + +#[repr(C)] +pub struct GVariant { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GVariant { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariant @ {self:p}")).finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GVariantBuilder { + pub u: GVariantBuilder_u, +} + +impl ::std::fmt::Debug for GVariantBuilder { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantBuilder @ {self:p}")) + .field("u", &self.u) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GVariantBuilder_u_s { + pub partial_magic: size_t, + pub type_: *const GVariantType, + pub y: [size_t; 14], +} + +impl ::std::fmt::Debug for GVariantBuilder_u_s { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantBuilder_u_s @ {self:p}")) + .field("partial_magic", &self.partial_magic) + .field("type_", &self.type_) + .field("y", &self.y) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GVariantDict { + pub u: GVariantDict_u, +} + +impl ::std::fmt::Debug for GVariantDict { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantDict @ {self:p}")) + .field("u", &self.u) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GVariantDict_u_s { + pub asv: *mut GVariant, + pub partial_magic: size_t, + pub y: [size_t; 14], +} + +impl ::std::fmt::Debug for GVariantDict_u_s { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantDict_u_s @ {self:p}")) + .field("asv", &self.asv) + .field("partial_magic", &self.partial_magic) + .field("y", &self.y) + .finish() + } +} + +#[derive(Copy, Clone)] +#[repr(C)] +pub struct GVariantIter { + pub x: [size_t; 16], +} + +impl ::std::fmt::Debug for GVariantIter { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantIter @ {self:p}")).finish() + } +} + +#[repr(C)] +pub struct GVariantType { + _data: [u8; 0], + _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, +} + +impl ::std::fmt::Debug for GVariantType { + fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { + f.debug_struct(&format!("GVariantType @ {self:p}")).finish() + } +} + +#[link(name = "gobject-2.0")] +#[link(name = "glib-2.0")] +extern "C" { + + //========================================================================= + // GIOCondition + //========================================================================= + pub fn g_io_condition_get_type() -> GType; + + //========================================================================= + // GMutex + //========================================================================= + pub fn g_mutex_clear(mutex: *mut GMutex); + pub fn g_mutex_init(mutex: *mut GMutex); + pub fn g_mutex_lock(mutex: *mut GMutex); + pub fn g_mutex_trylock(mutex: *mut GMutex) -> gboolean; + pub fn g_mutex_unlock(mutex: *mut GMutex); + + //========================================================================= + // GArray + //========================================================================= + pub fn g_array_get_type() -> GType; + pub fn g_array_append_vals(array: *mut GArray, data: gconstpointer, len: c_uint) + -> *mut GArray; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_array_binary_search( + array: *mut GArray, + target: gconstpointer, + compare_func: GCompareFunc, + out_match_index: *mut c_uint, + ) -> gboolean; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_array_copy(array: *mut GArray) -> *mut GArray; + pub fn g_array_free(array: *mut GArray, free_segment: gboolean) -> *mut c_char; + pub fn g_array_get_element_size(array: *mut GArray) -> c_uint; + pub fn g_array_insert_vals( + array: *mut GArray, + index_: c_uint, + data: gconstpointer, + len: c_uint, + ) -> *mut GArray; + pub fn g_array_new( + zero_terminated: gboolean, + clear_: gboolean, + element_size: c_uint, + ) -> *mut GArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_array_new_take( + data: gpointer, + len: size_t, + clear: gboolean, + element_size: size_t, + ) -> *mut GArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_array_new_take_zero_terminated( + data: gpointer, + clear: gboolean, + element_size: size_t, + ) -> *mut GArray; + pub fn g_array_prepend_vals( + array: *mut GArray, + data: gconstpointer, + len: c_uint, + ) -> *mut GArray; + pub fn g_array_ref(array: *mut GArray) -> *mut GArray; + pub fn g_array_remove_index(array: *mut GArray, index_: c_uint) -> *mut GArray; + pub fn g_array_remove_index_fast(array: *mut GArray, index_: c_uint) -> *mut GArray; + pub fn g_array_remove_range(array: *mut GArray, index_: c_uint, length: c_uint) -> *mut GArray; + pub fn g_array_set_clear_func(array: *mut GArray, clear_func: GDestroyNotify); + pub fn g_array_set_size(array: *mut GArray, length: c_uint) -> *mut GArray; + pub fn g_array_sized_new( + zero_terminated: gboolean, + clear_: gboolean, + element_size: c_uint, + reserved_size: c_uint, + ) -> *mut GArray; + pub fn g_array_sort(array: *mut GArray, compare_func: GCompareFunc); + pub fn g_array_sort_with_data( + array: *mut GArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_array_steal(array: *mut GArray, len: *mut size_t) -> gpointer; + pub fn g_array_unref(array: *mut GArray); + + //========================================================================= + // GAsyncQueue + //========================================================================= + pub fn g_async_queue_length(queue: *mut GAsyncQueue) -> c_int; + pub fn g_async_queue_length_unlocked(queue: *mut GAsyncQueue) -> c_int; + pub fn g_async_queue_lock(queue: *mut GAsyncQueue); + pub fn g_async_queue_pop(queue: *mut GAsyncQueue) -> gpointer; + pub fn g_async_queue_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer; + pub fn g_async_queue_push(queue: *mut GAsyncQueue, data: gpointer); + pub fn g_async_queue_push_front(queue: *mut GAsyncQueue, item: gpointer); + pub fn g_async_queue_push_front_unlocked(queue: *mut GAsyncQueue, item: gpointer); + pub fn g_async_queue_push_sorted( + queue: *mut GAsyncQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_async_queue_push_sorted_unlocked( + queue: *mut GAsyncQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_async_queue_push_unlocked(queue: *mut GAsyncQueue, data: gpointer); + pub fn g_async_queue_ref(queue: *mut GAsyncQueue) -> *mut GAsyncQueue; + pub fn g_async_queue_ref_unlocked(queue: *mut GAsyncQueue); + pub fn g_async_queue_remove(queue: *mut GAsyncQueue, item: gpointer) -> gboolean; + pub fn g_async_queue_remove_unlocked(queue: *mut GAsyncQueue, item: gpointer) -> gboolean; + pub fn g_async_queue_sort(queue: *mut GAsyncQueue, func: GCompareDataFunc, user_data: gpointer); + pub fn g_async_queue_sort_unlocked( + queue: *mut GAsyncQueue, + func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_async_queue_timed_pop(queue: *mut GAsyncQueue, end_time: *mut GTimeVal) -> gpointer; + pub fn g_async_queue_timed_pop_unlocked( + queue: *mut GAsyncQueue, + end_time: *mut GTimeVal, + ) -> gpointer; + pub fn g_async_queue_timeout_pop(queue: *mut GAsyncQueue, timeout: u64) -> gpointer; + pub fn g_async_queue_timeout_pop_unlocked(queue: *mut GAsyncQueue, timeout: u64) -> gpointer; + pub fn g_async_queue_try_pop(queue: *mut GAsyncQueue) -> gpointer; + pub fn g_async_queue_try_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer; + pub fn g_async_queue_unlock(queue: *mut GAsyncQueue); + pub fn g_async_queue_unref(queue: *mut GAsyncQueue); + pub fn g_async_queue_unref_and_unlock(queue: *mut GAsyncQueue); + pub fn g_async_queue_new() -> *mut GAsyncQueue; + pub fn g_async_queue_new_full(item_free_func: GDestroyNotify) -> *mut GAsyncQueue; + + //========================================================================= + // GBookmarkFile + //========================================================================= + pub fn g_bookmark_file_get_type() -> GType; + pub fn g_bookmark_file_new() -> *mut GBookmarkFile; + pub fn g_bookmark_file_add_application( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + exec: *const c_char, + ); + pub fn g_bookmark_file_add_group( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + group: *const c_char, + ); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_bookmark_file_copy(bookmark: *mut GBookmarkFile) -> *mut GBookmarkFile; + pub fn g_bookmark_file_free(bookmark: *mut GBookmarkFile); + pub fn g_bookmark_file_get_added( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> c_long; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_get_added_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; + pub fn g_bookmark_file_get_app_info( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + exec: *mut *mut c_char, + count: *mut c_uint, + stamp: *mut c_long, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_get_application_info( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + exec: *mut *mut c_char, + count: *mut c_uint, + stamp: *mut *mut GDateTime, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_get_applications( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_bookmark_file_get_description( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_bookmark_file_get_groups( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_bookmark_file_get_icon( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + href: *mut *mut c_char, + mime_type: *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_get_is_private( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_get_mime_type( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_bookmark_file_get_modified( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> c_long; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_get_modified_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; + pub fn g_bookmark_file_get_size(bookmark: *mut GBookmarkFile) -> c_int; + pub fn g_bookmark_file_get_title( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_bookmark_file_get_uris( + bookmark: *mut GBookmarkFile, + length: *mut size_t, + ) -> *mut *mut c_char; + pub fn g_bookmark_file_get_visited( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> c_long; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_get_visited_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> *mut GDateTime; + pub fn g_bookmark_file_has_application( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_has_group( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + group: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_has_item(bookmark: *mut GBookmarkFile, uri: *const c_char) -> gboolean; + pub fn g_bookmark_file_load_from_data( + bookmark: *mut GBookmarkFile, + data: *const u8, + length: size_t, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_load_from_data_dirs( + bookmark: *mut GBookmarkFile, + file: *const c_char, + full_path: *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_load_from_file( + bookmark: *mut GBookmarkFile, + filename: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_move_item( + bookmark: *mut GBookmarkFile, + old_uri: *const c_char, + new_uri: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_remove_application( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_remove_group( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + group: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_remove_item( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_set_added( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + added: c_long, + ); + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_set_added_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + added: *mut GDateTime, + ); + pub fn g_bookmark_file_set_app_info( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + exec: *const c_char, + count: c_int, + stamp: c_long, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_set_application_info( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + name: *const c_char, + exec: *const c_char, + count: c_int, + stamp: *mut GDateTime, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_set_description( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + description: *const c_char, + ); + pub fn g_bookmark_file_set_groups( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + groups: *mut *const c_char, + length: size_t, + ); + pub fn g_bookmark_file_set_icon( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + href: *const c_char, + mime_type: *const c_char, + ); + pub fn g_bookmark_file_set_is_private( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + is_private: gboolean, + ); + pub fn g_bookmark_file_set_mime_type( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + mime_type: *const c_char, + ); + pub fn g_bookmark_file_set_modified( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + modified: c_long, + ); + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_set_modified_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + modified: *mut GDateTime, + ); + pub fn g_bookmark_file_set_title( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + title: *const c_char, + ); + pub fn g_bookmark_file_set_visited( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + visited: c_long, + ); + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_bookmark_file_set_visited_date_time( + bookmark: *mut GBookmarkFile, + uri: *const c_char, + visited: *mut GDateTime, + ); + pub fn g_bookmark_file_to_data( + bookmark: *mut GBookmarkFile, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut u8; + pub fn g_bookmark_file_to_file( + bookmark: *mut GBookmarkFile, + filename: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_bookmark_file_error_quark() -> GQuark; + + //========================================================================= + // GByteArray + //========================================================================= + pub fn g_byte_array_get_type() -> GType; + pub fn g_byte_array_append( + array: *mut GByteArray, + data: *const u8, + len: c_uint, + ) -> *mut GByteArray; + pub fn g_byte_array_free(array: *mut GByteArray, free_segment: gboolean) -> *mut u8; + pub fn g_byte_array_free_to_bytes(array: *mut GByteArray) -> *mut GBytes; + pub fn g_byte_array_new() -> *mut GByteArray; + pub fn g_byte_array_new_take(data: *mut u8, len: size_t) -> *mut GByteArray; + pub fn g_byte_array_prepend( + array: *mut GByteArray, + data: *const u8, + len: c_uint, + ) -> *mut GByteArray; + pub fn g_byte_array_ref(array: *mut GByteArray) -> *mut GByteArray; + pub fn g_byte_array_remove_index(array: *mut GByteArray, index_: c_uint) -> *mut GByteArray; + pub fn g_byte_array_remove_index_fast( + array: *mut GByteArray, + index_: c_uint, + ) -> *mut GByteArray; + pub fn g_byte_array_remove_range( + array: *mut GByteArray, + index_: c_uint, + length: c_uint, + ) -> *mut GByteArray; + pub fn g_byte_array_set_size(array: *mut GByteArray, length: c_uint) -> *mut GByteArray; + pub fn g_byte_array_sized_new(reserved_size: c_uint) -> *mut GByteArray; + pub fn g_byte_array_sort(array: *mut GByteArray, compare_func: GCompareFunc); + pub fn g_byte_array_sort_with_data( + array: *mut GByteArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_byte_array_steal(array: *mut GByteArray, len: *mut size_t) -> *mut u8; + pub fn g_byte_array_unref(array: *mut GByteArray); + + //========================================================================= + // GBytes + //========================================================================= + pub fn g_bytes_get_type() -> GType; + pub fn g_bytes_new(data: gconstpointer, size: size_t) -> *mut GBytes; + pub fn g_bytes_new_static(data: gconstpointer, size: size_t) -> *mut GBytes; + pub fn g_bytes_new_take(data: gpointer, size: size_t) -> *mut GBytes; + pub fn g_bytes_new_with_free_func( + data: gconstpointer, + size: size_t, + free_func: GDestroyNotify, + user_data: gpointer, + ) -> *mut GBytes; + pub fn g_bytes_compare(bytes1: gconstpointer, bytes2: gconstpointer) -> c_int; + pub fn g_bytes_equal(bytes1: gconstpointer, bytes2: gconstpointer) -> gboolean; + pub fn g_bytes_get_data(bytes: *mut GBytes, size: *mut size_t) -> gconstpointer; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_bytes_get_region( + bytes: *mut GBytes, + element_size: size_t, + offset: size_t, + n_elements: size_t, + ) -> gconstpointer; + pub fn g_bytes_get_size(bytes: *mut GBytes) -> size_t; + pub fn g_bytes_hash(bytes: gconstpointer) -> c_uint; + pub fn g_bytes_new_from_bytes( + bytes: *mut GBytes, + offset: size_t, + length: size_t, + ) -> *mut GBytes; + pub fn g_bytes_ref(bytes: *mut GBytes) -> *mut GBytes; + pub fn g_bytes_unref(bytes: *mut GBytes); + pub fn g_bytes_unref_to_array(bytes: *mut GBytes) -> *mut GByteArray; + pub fn g_bytes_unref_to_data(bytes: *mut GBytes, size: *mut size_t) -> gpointer; + + //========================================================================= + // GChecksum + //========================================================================= + pub fn g_checksum_get_type() -> GType; + pub fn g_checksum_new(checksum_type: GChecksumType) -> *mut GChecksum; + pub fn g_checksum_copy(checksum: *const GChecksum) -> *mut GChecksum; + pub fn g_checksum_free(checksum: *mut GChecksum); + pub fn g_checksum_get_digest( + checksum: *mut GChecksum, + buffer: *mut u8, + digest_len: *mut size_t, + ); + pub fn g_checksum_get_string(checksum: *mut GChecksum) -> *const c_char; + pub fn g_checksum_reset(checksum: *mut GChecksum); + pub fn g_checksum_update(checksum: *mut GChecksum, data: *const u8, length: ssize_t); + pub fn g_checksum_type_get_length(checksum_type: GChecksumType) -> ssize_t; + + //========================================================================= + // GCond + //========================================================================= + pub fn g_cond_broadcast(cond: *mut GCond); + pub fn g_cond_clear(cond: *mut GCond); + pub fn g_cond_init(cond: *mut GCond); + pub fn g_cond_signal(cond: *mut GCond); + pub fn g_cond_wait(cond: *mut GCond, mutex: *mut GMutex); + pub fn g_cond_wait_until(cond: *mut GCond, mutex: *mut GMutex, end_time: i64) -> gboolean; + + //========================================================================= + // GDate + //========================================================================= + pub fn g_date_get_type() -> GType; + pub fn g_date_new() -> *mut GDate; + pub fn g_date_new_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> *mut GDate; + pub fn g_date_new_julian(julian_day: u32) -> *mut GDate; + pub fn g_date_add_days(date: *mut GDate, n_days: c_uint); + pub fn g_date_add_months(date: *mut GDate, n_months: c_uint); + pub fn g_date_add_years(date: *mut GDate, n_years: c_uint); + pub fn g_date_clamp(date: *mut GDate, min_date: *const GDate, max_date: *const GDate); + pub fn g_date_clear(date: *mut GDate, n_dates: c_uint); + pub fn g_date_compare(lhs: *const GDate, rhs: *const GDate) -> c_int; + pub fn g_date_copy(date: *const GDate) -> *mut GDate; + pub fn g_date_days_between(date1: *const GDate, date2: *const GDate) -> c_int; + pub fn g_date_free(date: *mut GDate); + pub fn g_date_get_day(date: *const GDate) -> GDateDay; + pub fn g_date_get_day_of_year(date: *const GDate) -> c_uint; + pub fn g_date_get_iso8601_week_of_year(date: *const GDate) -> c_uint; + pub fn g_date_get_julian(date: *const GDate) -> u32; + pub fn g_date_get_monday_week_of_year(date: *const GDate) -> c_uint; + pub fn g_date_get_month(date: *const GDate) -> GDateMonth; + pub fn g_date_get_sunday_week_of_year(date: *const GDate) -> c_uint; + pub fn g_date_get_weekday(date: *const GDate) -> GDateWeekday; + pub fn g_date_get_year(date: *const GDate) -> GDateYear; + pub fn g_date_is_first_of_month(date: *const GDate) -> gboolean; + pub fn g_date_is_last_of_month(date: *const GDate) -> gboolean; + pub fn g_date_order(date1: *mut GDate, date2: *mut GDate); + pub fn g_date_set_day(date: *mut GDate, day: GDateDay); + pub fn g_date_set_dmy(date: *mut GDate, day: GDateDay, month: GDateMonth, y: GDateYear); + pub fn g_date_set_julian(date: *mut GDate, julian_date: u32); + pub fn g_date_set_month(date: *mut GDate, month: GDateMonth); + pub fn g_date_set_parse(date: *mut GDate, str: *const c_char); + pub fn g_date_set_time(date: *mut GDate, time_: GTime); + pub fn g_date_set_time_t(date: *mut GDate, timet: c_long); + pub fn g_date_set_time_val(date: *mut GDate, timeval: *mut GTimeVal); + pub fn g_date_set_year(date: *mut GDate, year: GDateYear); + pub fn g_date_subtract_days(date: *mut GDate, n_days: c_uint); + pub fn g_date_subtract_months(date: *mut GDate, n_months: c_uint); + pub fn g_date_subtract_years(date: *mut GDate, n_years: c_uint); + //pub fn g_date_to_struct_tm(date: *const GDate, tm: /*Unimplemented*/*mut tm); + pub fn g_date_valid(date: *const GDate) -> gboolean; + pub fn g_date_get_days_in_month(month: GDateMonth, year: GDateYear) -> u8; + pub fn g_date_get_monday_weeks_in_year(year: GDateYear) -> u8; + pub fn g_date_get_sunday_weeks_in_year(year: GDateYear) -> u8; + pub fn g_date_is_leap_year(year: GDateYear) -> gboolean; + pub fn g_date_strftime( + s: *mut c_char, + slen: size_t, + format: *const c_char, + date: *const GDate, + ) -> size_t; + pub fn g_date_valid_day(day: GDateDay) -> gboolean; + pub fn g_date_valid_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> gboolean; + pub fn g_date_valid_julian(julian_date: u32) -> gboolean; + pub fn g_date_valid_month(month: GDateMonth) -> gboolean; + pub fn g_date_valid_weekday(weekday: GDateWeekday) -> gboolean; + pub fn g_date_valid_year(year: GDateYear) -> gboolean; + + //========================================================================= + // GDateTime + //========================================================================= + pub fn g_date_time_get_type() -> GType; + pub fn g_date_time_new( + tz: *mut GTimeZone, + year: c_int, + month: c_int, + day: c_int, + hour: c_int, + minute: c_int, + seconds: c_double, + ) -> *mut GDateTime; + pub fn g_date_time_new_from_iso8601( + text: *const c_char, + default_tz: *mut GTimeZone, + ) -> *mut GDateTime; + pub fn g_date_time_new_from_timeval_local(tv: *const GTimeVal) -> *mut GDateTime; + pub fn g_date_time_new_from_timeval_utc(tv: *const GTimeVal) -> *mut GDateTime; + pub fn g_date_time_new_from_unix_local(t: i64) -> *mut GDateTime; + pub fn g_date_time_new_from_unix_utc(t: i64) -> *mut GDateTime; + pub fn g_date_time_new_local( + year: c_int, + month: c_int, + day: c_int, + hour: c_int, + minute: c_int, + seconds: c_double, + ) -> *mut GDateTime; + pub fn g_date_time_new_now(tz: *mut GTimeZone) -> *mut GDateTime; + pub fn g_date_time_new_now_local() -> *mut GDateTime; + pub fn g_date_time_new_now_utc() -> *mut GDateTime; + pub fn g_date_time_new_utc( + year: c_int, + month: c_int, + day: c_int, + hour: c_int, + minute: c_int, + seconds: c_double, + ) -> *mut GDateTime; + pub fn g_date_time_add(datetime: *mut GDateTime, timespan: GTimeSpan) -> *mut GDateTime; + pub fn g_date_time_add_days(datetime: *mut GDateTime, days: c_int) -> *mut GDateTime; + pub fn g_date_time_add_full( + datetime: *mut GDateTime, + years: c_int, + months: c_int, + days: c_int, + hours: c_int, + minutes: c_int, + seconds: c_double, + ) -> *mut GDateTime; + pub fn g_date_time_add_hours(datetime: *mut GDateTime, hours: c_int) -> *mut GDateTime; + pub fn g_date_time_add_minutes(datetime: *mut GDateTime, minutes: c_int) -> *mut GDateTime; + pub fn g_date_time_add_months(datetime: *mut GDateTime, months: c_int) -> *mut GDateTime; + pub fn g_date_time_add_seconds(datetime: *mut GDateTime, seconds: c_double) -> *mut GDateTime; + pub fn g_date_time_add_weeks(datetime: *mut GDateTime, weeks: c_int) -> *mut GDateTime; + pub fn g_date_time_add_years(datetime: *mut GDateTime, years: c_int) -> *mut GDateTime; + pub fn g_date_time_compare(dt1: gconstpointer, dt2: gconstpointer) -> c_int; + pub fn g_date_time_difference(end: *mut GDateTime, begin: *mut GDateTime) -> GTimeSpan; + pub fn g_date_time_equal(dt1: gconstpointer, dt2: gconstpointer) -> gboolean; + pub fn g_date_time_format(datetime: *mut GDateTime, format: *const c_char) -> *mut c_char; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_date_time_format_iso8601(datetime: *mut GDateTime) -> *mut c_char; + pub fn g_date_time_get_day_of_month(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_day_of_week(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_day_of_year(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_hour(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_microsecond(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_minute(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_month(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_second(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_seconds(datetime: *mut GDateTime) -> c_double; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_date_time_get_timezone(datetime: *mut GDateTime) -> *mut GTimeZone; + pub fn g_date_time_get_timezone_abbreviation(datetime: *mut GDateTime) -> *const c_char; + pub fn g_date_time_get_utc_offset(datetime: *mut GDateTime) -> GTimeSpan; + pub fn g_date_time_get_week_numbering_year(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_week_of_year(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_year(datetime: *mut GDateTime) -> c_int; + pub fn g_date_time_get_ymd( + datetime: *mut GDateTime, + year: *mut c_int, + month: *mut c_int, + day: *mut c_int, + ); + pub fn g_date_time_hash(datetime: gconstpointer) -> c_uint; + pub fn g_date_time_is_daylight_savings(datetime: *mut GDateTime) -> gboolean; + pub fn g_date_time_ref(datetime: *mut GDateTime) -> *mut GDateTime; + pub fn g_date_time_to_local(datetime: *mut GDateTime) -> *mut GDateTime; + pub fn g_date_time_to_timeval(datetime: *mut GDateTime, tv: *mut GTimeVal) -> gboolean; + pub fn g_date_time_to_timezone(datetime: *mut GDateTime, tz: *mut GTimeZone) -> *mut GDateTime; + pub fn g_date_time_to_unix(datetime: *mut GDateTime) -> i64; + pub fn g_date_time_to_utc(datetime: *mut GDateTime) -> *mut GDateTime; + pub fn g_date_time_unref(datetime: *mut GDateTime); + + //========================================================================= + // GDir + //========================================================================= + pub fn g_dir_close(dir: *mut GDir); + pub fn g_dir_read_name(dir: *mut GDir) -> *const c_char; + pub fn g_dir_rewind(dir: *mut GDir); + pub fn g_dir_make_tmp(tmpl: *const c_char, error: *mut *mut GError) -> *mut c_char; + pub fn g_dir_open(path: *const c_char, flags: c_uint, error: *mut *mut GError) -> *mut GDir; + + //========================================================================= + // GError + //========================================================================= + pub fn g_error_get_type() -> GType; + pub fn g_error_new(domain: GQuark, code: c_int, format: *const c_char, ...) -> *mut GError; + pub fn g_error_new_literal(domain: GQuark, code: c_int, message: *const c_char) -> *mut GError; + //pub fn g_error_new_valist(domain: GQuark, code: c_int, format: *const c_char, args: /*Unimplemented*/va_list) -> *mut GError; + pub fn g_error_copy(error: *const GError) -> *mut GError; + pub fn g_error_free(error: *mut GError); + pub fn g_error_matches(error: *const GError, domain: GQuark, code: c_int) -> gboolean; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_error_domain_register( + error_type_name: *const c_char, + error_type_private_size: size_t, + error_type_init: GErrorInitFunc, + error_type_copy: GErrorCopyFunc, + error_type_clear: GErrorClearFunc, + ) -> GQuark; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_error_domain_register_static( + error_type_name: *const c_char, + error_type_private_size: size_t, + error_type_init: GErrorInitFunc, + error_type_copy: GErrorCopyFunc, + error_type_clear: GErrorClearFunc, + ) -> GQuark; + + //========================================================================= + // GHashTable + //========================================================================= + pub fn g_hash_table_get_type() -> GType; + pub fn g_hash_table_add(hash_table: *mut GHashTable, key: gpointer) -> gboolean; + pub fn g_hash_table_contains(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; + pub fn g_hash_table_destroy(hash_table: *mut GHashTable); + pub fn g_hash_table_find( + hash_table: *mut GHashTable, + predicate: GHRFunc, + user_data: gpointer, + ) -> gpointer; + pub fn g_hash_table_foreach(hash_table: *mut GHashTable, func: GHFunc, user_data: gpointer); + pub fn g_hash_table_foreach_remove( + hash_table: *mut GHashTable, + func: GHRFunc, + user_data: gpointer, + ) -> c_uint; + pub fn g_hash_table_foreach_steal( + hash_table: *mut GHashTable, + func: GHRFunc, + user_data: gpointer, + ) -> c_uint; + pub fn g_hash_table_get_keys(hash_table: *mut GHashTable) -> *mut GList; + pub fn g_hash_table_get_keys_as_array( + hash_table: *mut GHashTable, + length: *mut c_uint, + ) -> *mut gpointer; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_hash_table_get_keys_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray; + pub fn g_hash_table_get_values(hash_table: *mut GHashTable) -> *mut GList; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_hash_table_get_values_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray; + pub fn g_hash_table_insert( + hash_table: *mut GHashTable, + key: gpointer, + value: gpointer, + ) -> gboolean; + pub fn g_hash_table_lookup(hash_table: *mut GHashTable, key: gconstpointer) -> gpointer; + pub fn g_hash_table_lookup_extended( + hash_table: *mut GHashTable, + lookup_key: gconstpointer, + orig_key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; + pub fn g_hash_table_new(hash_func: GHashFunc, key_equal_func: GEqualFunc) -> *mut GHashTable; + pub fn g_hash_table_new_full( + hash_func: GHashFunc, + key_equal_func: GEqualFunc, + key_destroy_func: GDestroyNotify, + value_destroy_func: GDestroyNotify, + ) -> *mut GHashTable; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_hash_table_new_similar(other_hash_table: *mut GHashTable) -> *mut GHashTable; + pub fn g_hash_table_ref(hash_table: *mut GHashTable) -> *mut GHashTable; + pub fn g_hash_table_remove(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; + pub fn g_hash_table_remove_all(hash_table: *mut GHashTable); + pub fn g_hash_table_replace( + hash_table: *mut GHashTable, + key: gpointer, + value: gpointer, + ) -> gboolean; + pub fn g_hash_table_size(hash_table: *mut GHashTable) -> c_uint; + pub fn g_hash_table_steal(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean; + pub fn g_hash_table_steal_all(hash_table: *mut GHashTable); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_hash_table_steal_all_keys(hash_table: *mut GHashTable) -> *mut GPtrArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_hash_table_steal_all_values(hash_table: *mut GHashTable) -> *mut GPtrArray; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_hash_table_steal_extended( + hash_table: *mut GHashTable, + lookup_key: gconstpointer, + stolen_key: *mut gpointer, + stolen_value: *mut gpointer, + ) -> gboolean; + pub fn g_hash_table_unref(hash_table: *mut GHashTable); + + //========================================================================= + // GHashTableIter + //========================================================================= + pub fn g_hash_table_iter_get_hash_table(iter: *mut GHashTableIter) -> *mut GHashTable; + pub fn g_hash_table_iter_init(iter: *mut GHashTableIter, hash_table: *mut GHashTable); + pub fn g_hash_table_iter_next( + iter: *mut GHashTableIter, + key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; + pub fn g_hash_table_iter_remove(iter: *mut GHashTableIter); + pub fn g_hash_table_iter_replace(iter: *mut GHashTableIter, value: gpointer); + pub fn g_hash_table_iter_steal(iter: *mut GHashTableIter); + + //========================================================================= + // GHmac + //========================================================================= + pub fn g_hmac_copy(hmac: *const GHmac) -> *mut GHmac; + pub fn g_hmac_get_digest(hmac: *mut GHmac, buffer: *mut u8, digest_len: *mut size_t); + pub fn g_hmac_get_string(hmac: *mut GHmac) -> *const c_char; + pub fn g_hmac_ref(hmac: *mut GHmac) -> *mut GHmac; + pub fn g_hmac_unref(hmac: *mut GHmac); + pub fn g_hmac_update(hmac: *mut GHmac, data: *const u8, length: ssize_t); + pub fn g_hmac_new(digest_type: GChecksumType, key: *const u8, key_len: size_t) -> *mut GHmac; + + //========================================================================= + // GHook + //========================================================================= + pub fn g_hook_compare_ids(new_hook: *mut GHook, sibling: *mut GHook) -> c_int; + pub fn g_hook_alloc(hook_list: *mut GHookList) -> *mut GHook; + pub fn g_hook_destroy(hook_list: *mut GHookList, hook_id: c_ulong) -> gboolean; + pub fn g_hook_destroy_link(hook_list: *mut GHookList, hook: *mut GHook); + pub fn g_hook_find( + hook_list: *mut GHookList, + need_valids: gboolean, + func: GHookFindFunc, + data: gpointer, + ) -> *mut GHook; + pub fn g_hook_find_data( + hook_list: *mut GHookList, + need_valids: gboolean, + data: gpointer, + ) -> *mut GHook; + pub fn g_hook_find_func( + hook_list: *mut GHookList, + need_valids: gboolean, + func: gpointer, + ) -> *mut GHook; + pub fn g_hook_find_func_data( + hook_list: *mut GHookList, + need_valids: gboolean, + func: gpointer, + data: gpointer, + ) -> *mut GHook; + pub fn g_hook_first_valid(hook_list: *mut GHookList, may_be_in_call: gboolean) -> *mut GHook; + pub fn g_hook_free(hook_list: *mut GHookList, hook: *mut GHook); + pub fn g_hook_get(hook_list: *mut GHookList, hook_id: c_ulong) -> *mut GHook; + pub fn g_hook_insert_before(hook_list: *mut GHookList, sibling: *mut GHook, hook: *mut GHook); + pub fn g_hook_insert_sorted( + hook_list: *mut GHookList, + hook: *mut GHook, + func: GHookCompareFunc, + ); + pub fn g_hook_next_valid( + hook_list: *mut GHookList, + hook: *mut GHook, + may_be_in_call: gboolean, + ) -> *mut GHook; + pub fn g_hook_prepend(hook_list: *mut GHookList, hook: *mut GHook); + pub fn g_hook_ref(hook_list: *mut GHookList, hook: *mut GHook) -> *mut GHook; + pub fn g_hook_unref(hook_list: *mut GHookList, hook: *mut GHook); + + //========================================================================= + // GHookList + //========================================================================= + pub fn g_hook_list_clear(hook_list: *mut GHookList); + pub fn g_hook_list_init(hook_list: *mut GHookList, hook_size: c_uint); + pub fn g_hook_list_invoke(hook_list: *mut GHookList, may_recurse: gboolean); + pub fn g_hook_list_invoke_check(hook_list: *mut GHookList, may_recurse: gboolean); + pub fn g_hook_list_marshal( + hook_list: *mut GHookList, + may_recurse: gboolean, + marshaller: GHookMarshaller, + marshal_data: gpointer, + ); + pub fn g_hook_list_marshal_check( + hook_list: *mut GHookList, + may_recurse: gboolean, + marshaller: GHookCheckMarshaller, + marshal_data: gpointer, + ); + + //========================================================================= + // GIConv + //========================================================================= + pub fn g_iconv_close(converter: GIConv) -> c_int; + pub fn g_iconv_open(to_codeset: *const c_char, from_codeset: *const c_char) -> GIConv; + + //========================================================================= + // GIOChannel + //========================================================================= + pub fn g_io_channel_get_type() -> GType; + pub fn g_io_channel_new_file( + filename: *const c_char, + mode: *const c_char, + error: *mut *mut GError, + ) -> *mut GIOChannel; + pub fn g_io_channel_unix_new(fd: c_int) -> *mut GIOChannel; + pub fn g_io_channel_close(channel: *mut GIOChannel); + pub fn g_io_channel_flush(channel: *mut GIOChannel, error: *mut *mut GError) -> GIOStatus; + pub fn g_io_channel_get_buffer_condition(channel: *mut GIOChannel) -> GIOCondition; + pub fn g_io_channel_get_buffer_size(channel: *mut GIOChannel) -> size_t; + pub fn g_io_channel_get_buffered(channel: *mut GIOChannel) -> gboolean; + pub fn g_io_channel_get_close_on_unref(channel: *mut GIOChannel) -> gboolean; + pub fn g_io_channel_get_encoding(channel: *mut GIOChannel) -> *const c_char; + pub fn g_io_channel_get_flags(channel: *mut GIOChannel) -> GIOFlags; + pub fn g_io_channel_get_line_term( + channel: *mut GIOChannel, + length: *mut c_int, + ) -> *const c_char; + pub fn g_io_channel_init(channel: *mut GIOChannel); + pub fn g_io_channel_read( + channel: *mut GIOChannel, + buf: *mut c_char, + count: size_t, + bytes_read: *mut size_t, + ) -> GIOError; + pub fn g_io_channel_read_chars( + channel: *mut GIOChannel, + buf: *mut u8, + count: size_t, + bytes_read: *mut size_t, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_read_line( + channel: *mut GIOChannel, + str_return: *mut *mut c_char, + length: *mut size_t, + terminator_pos: *mut size_t, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_read_line_string( + channel: *mut GIOChannel, + buffer: *mut GString, + terminator_pos: *mut size_t, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_read_to_end( + channel: *mut GIOChannel, + str_return: *mut *mut u8, + length: *mut size_t, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_read_unichar( + channel: *mut GIOChannel, + thechar: *mut u32, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_ref(channel: *mut GIOChannel) -> *mut GIOChannel; + pub fn g_io_channel_seek(channel: *mut GIOChannel, offset: i64, type_: GSeekType) -> GIOError; + pub fn g_io_channel_seek_position( + channel: *mut GIOChannel, + offset: i64, + type_: GSeekType, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_set_buffer_size(channel: *mut GIOChannel, size: size_t); + pub fn g_io_channel_set_buffered(channel: *mut GIOChannel, buffered: gboolean); + pub fn g_io_channel_set_close_on_unref(channel: *mut GIOChannel, do_close: gboolean); + pub fn g_io_channel_set_encoding( + channel: *mut GIOChannel, + encoding: *const c_char, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_set_flags( + channel: *mut GIOChannel, + flags: GIOFlags, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_set_line_term( + channel: *mut GIOChannel, + line_term: *const c_char, + length: c_int, + ); + pub fn g_io_channel_shutdown( + channel: *mut GIOChannel, + flush: gboolean, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_unix_get_fd(channel: *mut GIOChannel) -> c_int; + pub fn g_io_channel_unref(channel: *mut GIOChannel); + pub fn g_io_channel_write( + channel: *mut GIOChannel, + buf: *const c_char, + count: size_t, + bytes_written: *mut size_t, + ) -> GIOError; + pub fn g_io_channel_write_chars( + channel: *mut GIOChannel, + buf: *const u8, + count: ssize_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_write_unichar( + channel: *mut GIOChannel, + thechar: u32, + error: *mut *mut GError, + ) -> GIOStatus; + pub fn g_io_channel_error_from_errno(en: c_int) -> GIOChannelError; + pub fn g_io_channel_error_quark() -> GQuark; + + //========================================================================= + // GKeyFile + //========================================================================= + pub fn g_key_file_get_type() -> GType; + pub fn g_key_file_new() -> *mut GKeyFile; + pub fn g_key_file_free(key_file: *mut GKeyFile); + pub fn g_key_file_get_boolean( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_get_boolean_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut gboolean; + pub fn g_key_file_get_comment( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_key_file_get_double( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> c_double; + pub fn g_key_file_get_double_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_double; + pub fn g_key_file_get_groups(key_file: *mut GKeyFile, length: *mut size_t) -> *mut *mut c_char; + pub fn g_key_file_get_int64( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> i64; + pub fn g_key_file_get_integer( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> c_int; + pub fn g_key_file_get_integer_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_int; + pub fn g_key_file_get_keys( + key_file: *mut GKeyFile, + group_name: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_key_file_get_locale_for_key( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + locale: *const c_char, + ) -> *mut c_char; + pub fn g_key_file_get_locale_string( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + locale: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_key_file_get_locale_string_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + locale: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_key_file_get_start_group(key_file: *mut GKeyFile) -> *mut c_char; + pub fn g_key_file_get_string( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_key_file_get_string_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_key_file_get_uint64( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> u64; + pub fn g_key_file_get_value( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_key_file_has_group(key_file: *mut GKeyFile, group_name: *const c_char) -> gboolean; + pub fn g_key_file_has_key( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_load_from_bytes( + key_file: *mut GKeyFile, + bytes: *mut GBytes, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_load_from_data( + key_file: *mut GKeyFile, + data: *const c_char, + length: size_t, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_load_from_data_dirs( + key_file: *mut GKeyFile, + file: *const c_char, + full_path: *mut *mut c_char, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_load_from_dirs( + key_file: *mut GKeyFile, + file: *const c_char, + search_dirs: *mut *const c_char, + full_path: *mut *mut c_char, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_load_from_file( + key_file: *mut GKeyFile, + file: *const c_char, + flags: GKeyFileFlags, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_ref(key_file: *mut GKeyFile) -> *mut GKeyFile; + pub fn g_key_file_remove_comment( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_remove_group( + key_file: *mut GKeyFile, + group_name: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_remove_key( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_save_to_file( + key_file: *mut GKeyFile, + filename: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_set_boolean( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: gboolean, + ); + pub fn g_key_file_set_boolean_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + list: *mut gboolean, + length: size_t, + ); + pub fn g_key_file_set_comment( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + comment: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_key_file_set_double( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: c_double, + ); + pub fn g_key_file_set_double_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + list: *mut c_double, + length: size_t, + ); + pub fn g_key_file_set_int64( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: i64, + ); + pub fn g_key_file_set_integer( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: c_int, + ); + pub fn g_key_file_set_integer_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + list: *mut c_int, + length: size_t, + ); + pub fn g_key_file_set_list_separator(key_file: *mut GKeyFile, separator: c_char); + pub fn g_key_file_set_locale_string( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + locale: *const c_char, + string: *const c_char, + ); + pub fn g_key_file_set_locale_string_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + locale: *const c_char, + list: *const *const c_char, + length: size_t, + ); + pub fn g_key_file_set_string( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + string: *const c_char, + ); + pub fn g_key_file_set_string_list( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + list: *const *const c_char, + length: size_t, + ); + pub fn g_key_file_set_uint64( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: u64, + ); + pub fn g_key_file_set_value( + key_file: *mut GKeyFile, + group_name: *const c_char, + key: *const c_char, + value: *const c_char, + ); + pub fn g_key_file_to_data( + key_file: *mut GKeyFile, + length: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_key_file_unref(key_file: *mut GKeyFile); + pub fn g_key_file_error_quark() -> GQuark; + + //========================================================================= + // GList + //========================================================================= + pub fn g_list_alloc() -> *mut GList; + pub fn g_list_append(list: *mut GList, data: gpointer) -> *mut GList; + pub fn g_list_concat(list1: *mut GList, list2: *mut GList) -> *mut GList; + pub fn g_list_copy(list: *mut GList) -> *mut GList; + pub fn g_list_copy_deep(list: *mut GList, func: GCopyFunc, user_data: gpointer) -> *mut GList; + pub fn g_list_delete_link(list: *mut GList, link_: *mut GList) -> *mut GList; + pub fn g_list_find(list: *mut GList, data: gconstpointer) -> *mut GList; + pub fn g_list_find_custom( + list: *mut GList, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GList; + pub fn g_list_first(list: *mut GList) -> *mut GList; + pub fn g_list_foreach(list: *mut GList, func: GFunc, user_data: gpointer); + pub fn g_list_free(list: *mut GList); + pub fn g_list_free_1(list: *mut GList); + pub fn g_list_free_full(list: *mut GList, free_func: GDestroyNotify); + pub fn g_list_index(list: *mut GList, data: gconstpointer) -> c_int; + pub fn g_list_insert(list: *mut GList, data: gpointer, position: c_int) -> *mut GList; + pub fn g_list_insert_before( + list: *mut GList, + sibling: *mut GList, + data: gpointer, + ) -> *mut GList; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_list_insert_before_link( + list: *mut GList, + sibling: *mut GList, + link_: *mut GList, + ) -> *mut GList; + pub fn g_list_insert_sorted(list: *mut GList, data: gpointer, func: GCompareFunc) + -> *mut GList; + pub fn g_list_insert_sorted_with_data( + list: *mut GList, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GList; + pub fn g_list_last(list: *mut GList) -> *mut GList; + pub fn g_list_length(list: *mut GList) -> c_uint; + pub fn g_list_nth(list: *mut GList, n: c_uint) -> *mut GList; + pub fn g_list_nth_data(list: *mut GList, n: c_uint) -> gpointer; + pub fn g_list_nth_prev(list: *mut GList, n: c_uint) -> *mut GList; + pub fn g_list_position(list: *mut GList, llink: *mut GList) -> c_int; + pub fn g_list_prepend(list: *mut GList, data: gpointer) -> *mut GList; + pub fn g_list_remove(list: *mut GList, data: gconstpointer) -> *mut GList; + pub fn g_list_remove_all(list: *mut GList, data: gconstpointer) -> *mut GList; + pub fn g_list_remove_link(list: *mut GList, llink: *mut GList) -> *mut GList; + pub fn g_list_reverse(list: *mut GList) -> *mut GList; + pub fn g_list_sort(list: *mut GList, compare_func: GCompareFunc) -> *mut GList; + pub fn g_list_sort_with_data( + list: *mut GList, + compare_func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GList; + + //========================================================================= + // GMainContext + //========================================================================= + pub fn g_main_context_get_type() -> GType; + pub fn g_main_context_new() -> *mut GMainContext; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_main_context_new_with_flags(flags: GMainContextFlags) -> *mut GMainContext; + pub fn g_main_context_acquire(context: *mut GMainContext) -> gboolean; + pub fn g_main_context_add_poll(context: *mut GMainContext, fd: *mut GPollFD, priority: c_int); + pub fn g_main_context_check( + context: *mut GMainContext, + max_priority: c_int, + fds: *mut GPollFD, + n_fds: c_int, + ) -> gboolean; + pub fn g_main_context_dispatch(context: *mut GMainContext); + pub fn g_main_context_find_source_by_funcs_user_data( + context: *mut GMainContext, + funcs: *mut GSourceFuncs, + user_data: gpointer, + ) -> *mut GSource; + pub fn g_main_context_find_source_by_id( + context: *mut GMainContext, + source_id: c_uint, + ) -> *mut GSource; + pub fn g_main_context_find_source_by_user_data( + context: *mut GMainContext, + user_data: gpointer, + ) -> *mut GSource; + pub fn g_main_context_get_poll_func(context: *mut GMainContext) -> GPollFunc; + pub fn g_main_context_invoke(context: *mut GMainContext, function: GSourceFunc, data: gpointer); + pub fn g_main_context_invoke_full( + context: *mut GMainContext, + priority: c_int, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ); + pub fn g_main_context_is_owner(context: *mut GMainContext) -> gboolean; + pub fn g_main_context_iteration(context: *mut GMainContext, may_block: gboolean) -> gboolean; + pub fn g_main_context_pending(context: *mut GMainContext) -> gboolean; + pub fn g_main_context_pop_thread_default(context: *mut GMainContext); + pub fn g_main_context_prepare(context: *mut GMainContext, priority: *mut c_int) -> gboolean; + pub fn g_main_context_push_thread_default(context: *mut GMainContext); + pub fn g_main_context_query( + context: *mut GMainContext, + max_priority: c_int, + timeout_: *mut c_int, + fds: *mut GPollFD, + n_fds: c_int, + ) -> c_int; + pub fn g_main_context_ref(context: *mut GMainContext) -> *mut GMainContext; + pub fn g_main_context_release(context: *mut GMainContext); + pub fn g_main_context_remove_poll(context: *mut GMainContext, fd: *mut GPollFD); + pub fn g_main_context_set_poll_func(context: *mut GMainContext, func: GPollFunc); + pub fn g_main_context_unref(context: *mut GMainContext); + pub fn g_main_context_wait( + context: *mut GMainContext, + cond: *mut GCond, + mutex: *mut GMutex, + ) -> gboolean; + pub fn g_main_context_wakeup(context: *mut GMainContext); + pub fn g_main_context_default() -> *mut GMainContext; + pub fn g_main_context_get_thread_default() -> *mut GMainContext; + pub fn g_main_context_ref_thread_default() -> *mut GMainContext; + + //========================================================================= + // GMainLoop + //========================================================================= + pub fn g_main_loop_get_type() -> GType; + pub fn g_main_loop_new(context: *mut GMainContext, is_running: gboolean) -> *mut GMainLoop; + pub fn g_main_loop_get_context(loop_: *mut GMainLoop) -> *mut GMainContext; + pub fn g_main_loop_is_running(loop_: *mut GMainLoop) -> gboolean; + pub fn g_main_loop_quit(loop_: *mut GMainLoop); + pub fn g_main_loop_ref(loop_: *mut GMainLoop) -> *mut GMainLoop; + pub fn g_main_loop_run(loop_: *mut GMainLoop); + pub fn g_main_loop_unref(loop_: *mut GMainLoop); + + //========================================================================= + // GMappedFile + //========================================================================= + pub fn g_mapped_file_get_type() -> GType; + pub fn g_mapped_file_new( + filename: *const c_char, + writable: gboolean, + error: *mut *mut GError, + ) -> *mut GMappedFile; + pub fn g_mapped_file_new_from_fd( + fd: c_int, + writable: gboolean, + error: *mut *mut GError, + ) -> *mut GMappedFile; + pub fn g_mapped_file_free(file: *mut GMappedFile); + pub fn g_mapped_file_get_bytes(file: *mut GMappedFile) -> *mut GBytes; + pub fn g_mapped_file_get_contents(file: *mut GMappedFile) -> *mut c_char; + pub fn g_mapped_file_get_length(file: *mut GMappedFile) -> size_t; + pub fn g_mapped_file_ref(file: *mut GMappedFile) -> *mut GMappedFile; + pub fn g_mapped_file_unref(file: *mut GMappedFile); + + //========================================================================= + // GMarkupParseContext + //========================================================================= + pub fn g_markup_parse_context_get_type() -> GType; + pub fn g_markup_parse_context_new( + parser: *const GMarkupParser, + flags: GMarkupParseFlags, + user_data: gpointer, + user_data_dnotify: GDestroyNotify, + ) -> *mut GMarkupParseContext; + pub fn g_markup_parse_context_end_parse( + context: *mut GMarkupParseContext, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_markup_parse_context_free(context: *mut GMarkupParseContext); + pub fn g_markup_parse_context_get_element(context: *mut GMarkupParseContext) -> *const c_char; + pub fn g_markup_parse_context_get_element_stack( + context: *mut GMarkupParseContext, + ) -> *const GSList; + pub fn g_markup_parse_context_get_position( + context: *mut GMarkupParseContext, + line_number: *mut c_int, + char_number: *mut c_int, + ); + pub fn g_markup_parse_context_get_user_data(context: *mut GMarkupParseContext) -> gpointer; + pub fn g_markup_parse_context_parse( + context: *mut GMarkupParseContext, + text: *const c_char, + text_len: ssize_t, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_markup_parse_context_pop(context: *mut GMarkupParseContext) -> gpointer; + pub fn g_markup_parse_context_push( + context: *mut GMarkupParseContext, + parser: *const GMarkupParser, + user_data: gpointer, + ); + pub fn g_markup_parse_context_ref( + context: *mut GMarkupParseContext, + ) -> *mut GMarkupParseContext; + pub fn g_markup_parse_context_unref(context: *mut GMarkupParseContext); + + //========================================================================= + // GMatchInfo + //========================================================================= + pub fn g_match_info_get_type() -> GType; + pub fn g_match_info_expand_references( + match_info: *const GMatchInfo, + string_to_expand: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_match_info_fetch(match_info: *const GMatchInfo, match_num: c_int) -> *mut c_char; + pub fn g_match_info_fetch_all(match_info: *const GMatchInfo) -> *mut *mut c_char; + pub fn g_match_info_fetch_named( + match_info: *const GMatchInfo, + name: *const c_char, + ) -> *mut c_char; + pub fn g_match_info_fetch_named_pos( + match_info: *const GMatchInfo, + name: *const c_char, + start_pos: *mut c_int, + end_pos: *mut c_int, + ) -> gboolean; + pub fn g_match_info_fetch_pos( + match_info: *const GMatchInfo, + match_num: c_int, + start_pos: *mut c_int, + end_pos: *mut c_int, + ) -> gboolean; + pub fn g_match_info_free(match_info: *mut GMatchInfo); + pub fn g_match_info_get_match_count(match_info: *const GMatchInfo) -> c_int; + pub fn g_match_info_get_regex(match_info: *const GMatchInfo) -> *mut GRegex; + pub fn g_match_info_get_string(match_info: *const GMatchInfo) -> *const c_char; + pub fn g_match_info_is_partial_match(match_info: *const GMatchInfo) -> gboolean; + pub fn g_match_info_matches(match_info: *const GMatchInfo) -> gboolean; + pub fn g_match_info_next(match_info: *mut GMatchInfo, error: *mut *mut GError) -> gboolean; + pub fn g_match_info_ref(match_info: *mut GMatchInfo) -> *mut GMatchInfo; + pub fn g_match_info_unref(match_info: *mut GMatchInfo); + + //========================================================================= + // GNode + //========================================================================= + pub fn g_node_child_index(node: *mut GNode, data: gpointer) -> c_int; + pub fn g_node_child_position(node: *mut GNode, child: *mut GNode) -> c_int; + pub fn g_node_children_foreach( + node: *mut GNode, + flags: GTraverseFlags, + func: GNodeForeachFunc, + data: gpointer, + ); + pub fn g_node_copy(node: *mut GNode) -> *mut GNode; + pub fn g_node_copy_deep(node: *mut GNode, copy_func: GCopyFunc, data: gpointer) -> *mut GNode; + pub fn g_node_depth(node: *mut GNode) -> c_uint; + pub fn g_node_destroy(root: *mut GNode); + pub fn g_node_find( + root: *mut GNode, + order: GTraverseType, + flags: GTraverseFlags, + data: gpointer, + ) -> *mut GNode; + pub fn g_node_find_child(node: *mut GNode, flags: GTraverseFlags, data: gpointer) + -> *mut GNode; + pub fn g_node_first_sibling(node: *mut GNode) -> *mut GNode; + pub fn g_node_get_root(node: *mut GNode) -> *mut GNode; + pub fn g_node_insert(parent: *mut GNode, position: c_int, node: *mut GNode) -> *mut GNode; + pub fn g_node_insert_after( + parent: *mut GNode, + sibling: *mut GNode, + node: *mut GNode, + ) -> *mut GNode; + pub fn g_node_insert_before( + parent: *mut GNode, + sibling: *mut GNode, + node: *mut GNode, + ) -> *mut GNode; + pub fn g_node_is_ancestor(node: *mut GNode, descendant: *mut GNode) -> gboolean; + pub fn g_node_last_child(node: *mut GNode) -> *mut GNode; + pub fn g_node_last_sibling(node: *mut GNode) -> *mut GNode; + pub fn g_node_max_height(root: *mut GNode) -> c_uint; + pub fn g_node_n_children(node: *mut GNode) -> c_uint; + pub fn g_node_n_nodes(root: *mut GNode, flags: GTraverseFlags) -> c_uint; + pub fn g_node_nth_child(node: *mut GNode, n: c_uint) -> *mut GNode; + pub fn g_node_prepend(parent: *mut GNode, node: *mut GNode) -> *mut GNode; + pub fn g_node_reverse_children(node: *mut GNode); + pub fn g_node_traverse( + root: *mut GNode, + order: GTraverseType, + flags: GTraverseFlags, + max_depth: c_int, + func: GNodeTraverseFunc, + data: gpointer, + ); + pub fn g_node_unlink(node: *mut GNode); + pub fn g_node_new(data: gpointer) -> *mut GNode; + + //========================================================================= + // GOnce + //========================================================================= + pub fn g_once_impl(once: *mut GOnce, func: GThreadFunc, arg: gpointer) -> gpointer; + pub fn g_once_init_enter(location: *mut c_void) -> gboolean; + pub fn g_once_init_leave(location: *mut c_void, result: size_t); + + //========================================================================= + // GOptionContext + //========================================================================= + pub fn g_option_context_add_group(context: *mut GOptionContext, group: *mut GOptionGroup); + pub fn g_option_context_add_main_entries( + context: *mut GOptionContext, + entries: *const GOptionEntry, + translation_domain: *const c_char, + ); + pub fn g_option_context_free(context: *mut GOptionContext); + pub fn g_option_context_get_description(context: *mut GOptionContext) -> *const c_char; + pub fn g_option_context_get_help( + context: *mut GOptionContext, + main_help: gboolean, + group: *mut GOptionGroup, + ) -> *mut c_char; + pub fn g_option_context_get_help_enabled(context: *mut GOptionContext) -> gboolean; + pub fn g_option_context_get_ignore_unknown_options(context: *mut GOptionContext) -> gboolean; + pub fn g_option_context_get_main_group(context: *mut GOptionContext) -> *mut GOptionGroup; + pub fn g_option_context_get_strict_posix(context: *mut GOptionContext) -> gboolean; + pub fn g_option_context_get_summary(context: *mut GOptionContext) -> *const c_char; + pub fn g_option_context_parse( + context: *mut GOptionContext, + argc: *mut c_int, + argv: *mut *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_option_context_parse_strv( + context: *mut GOptionContext, + arguments: *mut *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_option_context_set_description( + context: *mut GOptionContext, + description: *const c_char, + ); + pub fn g_option_context_set_help_enabled(context: *mut GOptionContext, help_enabled: gboolean); + pub fn g_option_context_set_ignore_unknown_options( + context: *mut GOptionContext, + ignore_unknown: gboolean, + ); + pub fn g_option_context_set_main_group(context: *mut GOptionContext, group: *mut GOptionGroup); + pub fn g_option_context_set_strict_posix(context: *mut GOptionContext, strict_posix: gboolean); + pub fn g_option_context_set_summary(context: *mut GOptionContext, summary: *const c_char); + pub fn g_option_context_set_translate_func( + context: *mut GOptionContext, + func: GTranslateFunc, + data: gpointer, + destroy_notify: GDestroyNotify, + ); + pub fn g_option_context_set_translation_domain( + context: *mut GOptionContext, + domain: *const c_char, + ); + pub fn g_option_context_new(parameter_string: *const c_char) -> *mut GOptionContext; + + //========================================================================= + // GOptionGroup + //========================================================================= + pub fn g_option_group_get_type() -> GType; + pub fn g_option_group_new( + name: *const c_char, + description: *const c_char, + help_description: *const c_char, + user_data: gpointer, + destroy: GDestroyNotify, + ) -> *mut GOptionGroup; + pub fn g_option_group_add_entries(group: *mut GOptionGroup, entries: *const GOptionEntry); + pub fn g_option_group_free(group: *mut GOptionGroup); + pub fn g_option_group_ref(group: *mut GOptionGroup) -> *mut GOptionGroup; + pub fn g_option_group_set_error_hook(group: *mut GOptionGroup, error_func: GOptionErrorFunc); + pub fn g_option_group_set_parse_hooks( + group: *mut GOptionGroup, + pre_parse_func: GOptionParseFunc, + post_parse_func: GOptionParseFunc, + ); + pub fn g_option_group_set_translate_func( + group: *mut GOptionGroup, + func: GTranslateFunc, + data: gpointer, + destroy_notify: GDestroyNotify, + ); + pub fn g_option_group_set_translation_domain(group: *mut GOptionGroup, domain: *const c_char); + pub fn g_option_group_unref(group: *mut GOptionGroup); + + //========================================================================= + // GPathBuf + //========================================================================= + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_clear(buf: *mut GPathBuf); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_clear_to_path(buf: *mut GPathBuf) -> *mut c_char; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_copy(buf: *mut GPathBuf) -> *mut GPathBuf; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_free(buf: *mut GPathBuf); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_free_to_path(buf: *mut GPathBuf) -> *mut c_char; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_init(buf: *mut GPathBuf) -> *mut GPathBuf; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_init_from_path(buf: *mut GPathBuf, path: *const c_char) -> *mut GPathBuf; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_pop(buf: *mut GPathBuf) -> gboolean; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_push(buf: *mut GPathBuf, path: *const c_char) -> *mut GPathBuf; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_set_extension(buf: *mut GPathBuf, extension: *const c_char) -> gboolean; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_set_filename(buf: *mut GPathBuf, file_name: *const c_char) -> gboolean; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_to_path(buf: *mut GPathBuf) -> *mut c_char; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_new() -> *mut GPathBuf; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_path_buf_new_from_path(path: *const c_char) -> *mut GPathBuf; + + //========================================================================= + // GPatternSpec + //========================================================================= + pub fn g_pattern_spec_get_type() -> GType; + pub fn g_pattern_spec_new(pattern: *const c_char) -> *mut GPatternSpec; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_pattern_spec_copy(pspec: *mut GPatternSpec) -> *mut GPatternSpec; + pub fn g_pattern_spec_equal(pspec1: *mut GPatternSpec, pspec2: *mut GPatternSpec) -> gboolean; + pub fn g_pattern_spec_free(pspec: *mut GPatternSpec); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_pattern_spec_match( + pspec: *mut GPatternSpec, + string_length: size_t, + string: *const c_char, + string_reversed: *const c_char, + ) -> gboolean; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_pattern_spec_match_string(pspec: *mut GPatternSpec, string: *const c_char) + -> gboolean; + + //========================================================================= + // GPollFD + //========================================================================= + pub fn g_pollfd_get_type() -> GType; + + //========================================================================= + // GPrivate + //========================================================================= + pub fn g_private_get(key: *mut GPrivate) -> gpointer; + pub fn g_private_replace(key: *mut GPrivate, value: gpointer); + pub fn g_private_set(key: *mut GPrivate, value: gpointer); + + //========================================================================= + // GPtrArray + //========================================================================= + pub fn g_ptr_array_get_type() -> GType; + pub fn g_ptr_array_add(array: *mut GPtrArray, data: gpointer); + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_ptr_array_copy( + array: *mut GPtrArray, + func: GCopyFunc, + user_data: gpointer, + ) -> *mut GPtrArray; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_ptr_array_extend( + array_to_extend: *mut GPtrArray, + array: *mut GPtrArray, + func: GCopyFunc, + user_data: gpointer, + ); + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_ptr_array_extend_and_steal(array_to_extend: *mut GPtrArray, array: *mut GPtrArray); + pub fn g_ptr_array_find( + haystack: *mut GPtrArray, + needle: gconstpointer, + index_: *mut c_uint, + ) -> gboolean; + pub fn g_ptr_array_find_with_equal_func( + haystack: *mut GPtrArray, + needle: gconstpointer, + equal_func: GEqualFunc, + index_: *mut c_uint, + ) -> gboolean; + pub fn g_ptr_array_foreach(array: *mut GPtrArray, func: GFunc, user_data: gpointer); + pub fn g_ptr_array_free(array: *mut GPtrArray, free_seg: gboolean) -> *mut gpointer; + pub fn g_ptr_array_insert(array: *mut GPtrArray, index_: c_int, data: gpointer); + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_ptr_array_is_null_terminated(array: *mut GPtrArray) -> gboolean; + pub fn g_ptr_array_new() -> *mut GPtrArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_new_from_array( + data: *mut gpointer, + len: size_t, + copy_func: GCopyFunc, + copy_func_user_data: gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_new_from_null_terminated_array( + data: *mut gpointer, + copy_func: GCopyFunc, + copy_func_user_data: gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; + pub fn g_ptr_array_new_full( + reserved_size: c_uint, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_ptr_array_new_null_terminated( + reserved_size: c_uint, + element_free_func: GDestroyNotify, + null_terminated: gboolean, + ) -> *mut GPtrArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_new_take( + data: *mut gpointer, + len: size_t, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_new_take_null_terminated( + data: *mut gpointer, + element_free_func: GDestroyNotify, + ) -> *mut GPtrArray; + pub fn g_ptr_array_new_with_free_func(element_free_func: GDestroyNotify) -> *mut GPtrArray; + pub fn g_ptr_array_ref(array: *mut GPtrArray) -> *mut GPtrArray; + pub fn g_ptr_array_remove(array: *mut GPtrArray, data: gpointer) -> gboolean; + pub fn g_ptr_array_remove_fast(array: *mut GPtrArray, data: gpointer) -> gboolean; + pub fn g_ptr_array_remove_index(array: *mut GPtrArray, index_: c_uint) -> gpointer; + pub fn g_ptr_array_remove_index_fast(array: *mut GPtrArray, index_: c_uint) -> gpointer; + pub fn g_ptr_array_remove_range( + array: *mut GPtrArray, + index_: c_uint, + length: c_uint, + ) -> *mut GPtrArray; + pub fn g_ptr_array_set_free_func(array: *mut GPtrArray, element_free_func: GDestroyNotify); + pub fn g_ptr_array_set_size(array: *mut GPtrArray, length: c_int); + pub fn g_ptr_array_sized_new(reserved_size: c_uint) -> *mut GPtrArray; + pub fn g_ptr_array_sort(array: *mut GPtrArray, compare_func: GCompareFunc); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_sort_values(array: *mut GPtrArray, compare_func: GCompareFunc); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_ptr_array_sort_values_with_data( + array: *mut GPtrArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_ptr_array_sort_with_data( + array: *mut GPtrArray, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_ptr_array_steal(array: *mut GPtrArray, len: *mut size_t) -> *mut gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ptr_array_steal_index(array: *mut GPtrArray, index_: c_uint) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ptr_array_steal_index_fast(array: *mut GPtrArray, index_: c_uint) -> gpointer; + pub fn g_ptr_array_unref(array: *mut GPtrArray); + + //========================================================================= + // GQueue + //========================================================================= + pub fn g_queue_clear(queue: *mut GQueue); + #[cfg(any(feature = "v2_60", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_60")))] + pub fn g_queue_clear_full(queue: *mut GQueue, free_func: GDestroyNotify); + pub fn g_queue_copy(queue: *mut GQueue) -> *mut GQueue; + pub fn g_queue_delete_link(queue: *mut GQueue, link_: *mut GList); + pub fn g_queue_find(queue: *mut GQueue, data: gconstpointer) -> *mut GList; + pub fn g_queue_find_custom( + queue: *mut GQueue, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GList; + pub fn g_queue_foreach(queue: *mut GQueue, func: GFunc, user_data: gpointer); + pub fn g_queue_free(queue: *mut GQueue); + pub fn g_queue_free_full(queue: *mut GQueue, free_func: GDestroyNotify); + pub fn g_queue_get_length(queue: *mut GQueue) -> c_uint; + pub fn g_queue_index(queue: *mut GQueue, data: gconstpointer) -> c_int; + pub fn g_queue_init(queue: *mut GQueue); + pub fn g_queue_insert_after(queue: *mut GQueue, sibling: *mut GList, data: gpointer); + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_queue_insert_after_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList); + pub fn g_queue_insert_before(queue: *mut GQueue, sibling: *mut GList, data: gpointer); + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_queue_insert_before_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList); + pub fn g_queue_insert_sorted( + queue: *mut GQueue, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_queue_is_empty(queue: *mut GQueue) -> gboolean; + pub fn g_queue_link_index(queue: *mut GQueue, link_: *mut GList) -> c_int; + pub fn g_queue_peek_head(queue: *mut GQueue) -> gpointer; + pub fn g_queue_peek_head_link(queue: *mut GQueue) -> *mut GList; + pub fn g_queue_peek_nth(queue: *mut GQueue, n: c_uint) -> gpointer; + pub fn g_queue_peek_nth_link(queue: *mut GQueue, n: c_uint) -> *mut GList; + pub fn g_queue_peek_tail(queue: *mut GQueue) -> gpointer; + pub fn g_queue_peek_tail_link(queue: *mut GQueue) -> *mut GList; + pub fn g_queue_pop_head(queue: *mut GQueue) -> gpointer; + pub fn g_queue_pop_head_link(queue: *mut GQueue) -> *mut GList; + pub fn g_queue_pop_nth(queue: *mut GQueue, n: c_uint) -> gpointer; + pub fn g_queue_pop_nth_link(queue: *mut GQueue, n: c_uint) -> *mut GList; + pub fn g_queue_pop_tail(queue: *mut GQueue) -> gpointer; + pub fn g_queue_pop_tail_link(queue: *mut GQueue) -> *mut GList; + pub fn g_queue_push_head(queue: *mut GQueue, data: gpointer); + pub fn g_queue_push_head_link(queue: *mut GQueue, link_: *mut GList); + pub fn g_queue_push_nth(queue: *mut GQueue, data: gpointer, n: c_int); + pub fn g_queue_push_nth_link(queue: *mut GQueue, n: c_int, link_: *mut GList); + pub fn g_queue_push_tail(queue: *mut GQueue, data: gpointer); + pub fn g_queue_push_tail_link(queue: *mut GQueue, link_: *mut GList); + pub fn g_queue_remove(queue: *mut GQueue, data: gconstpointer) -> gboolean; + pub fn g_queue_remove_all(queue: *mut GQueue, data: gconstpointer) -> c_uint; + pub fn g_queue_reverse(queue: *mut GQueue); + pub fn g_queue_sort(queue: *mut GQueue, compare_func: GCompareDataFunc, user_data: gpointer); + pub fn g_queue_unlink(queue: *mut GQueue, link_: *mut GList); + pub fn g_queue_new() -> *mut GQueue; + + //========================================================================= + // GRWLock + //========================================================================= + pub fn g_rw_lock_clear(rw_lock: *mut GRWLock); + pub fn g_rw_lock_init(rw_lock: *mut GRWLock); + pub fn g_rw_lock_reader_lock(rw_lock: *mut GRWLock); + pub fn g_rw_lock_reader_trylock(rw_lock: *mut GRWLock) -> gboolean; + pub fn g_rw_lock_reader_unlock(rw_lock: *mut GRWLock); + pub fn g_rw_lock_writer_lock(rw_lock: *mut GRWLock); + pub fn g_rw_lock_writer_trylock(rw_lock: *mut GRWLock) -> gboolean; + pub fn g_rw_lock_writer_unlock(rw_lock: *mut GRWLock); + + //========================================================================= + // GRand + //========================================================================= + pub fn g_rand_copy(rand_: *mut GRand) -> *mut GRand; + pub fn g_rand_double(rand_: *mut GRand) -> c_double; + pub fn g_rand_double_range(rand_: *mut GRand, begin: c_double, end: c_double) -> c_double; + pub fn g_rand_free(rand_: *mut GRand); + pub fn g_rand_int(rand_: *mut GRand) -> u32; + pub fn g_rand_int_range(rand_: *mut GRand, begin: i32, end: i32) -> i32; + pub fn g_rand_set_seed(rand_: *mut GRand, seed: u32); + pub fn g_rand_set_seed_array(rand_: *mut GRand, seed: *const u32, seed_length: c_uint); + pub fn g_rand_new() -> *mut GRand; + pub fn g_rand_new_with_seed(seed: u32) -> *mut GRand; + pub fn g_rand_new_with_seed_array(seed: *const u32, seed_length: c_uint) -> *mut GRand; + + //========================================================================= + // GRecMutex + //========================================================================= + pub fn g_rec_mutex_clear(rec_mutex: *mut GRecMutex); + pub fn g_rec_mutex_init(rec_mutex: *mut GRecMutex); + pub fn g_rec_mutex_lock(rec_mutex: *mut GRecMutex); + pub fn g_rec_mutex_trylock(rec_mutex: *mut GRecMutex) -> gboolean; + pub fn g_rec_mutex_unlock(rec_mutex: *mut GRecMutex); + + //========================================================================= + // GRegex + //========================================================================= + pub fn g_regex_get_type() -> GType; + pub fn g_regex_new( + pattern: *const c_char, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut GRegex; + pub fn g_regex_get_capture_count(regex: *const GRegex) -> c_int; + pub fn g_regex_get_compile_flags(regex: *const GRegex) -> GRegexCompileFlags; + pub fn g_regex_get_has_cr_or_lf(regex: *const GRegex) -> gboolean; + pub fn g_regex_get_match_flags(regex: *const GRegex) -> GRegexMatchFlags; + pub fn g_regex_get_max_backref(regex: *const GRegex) -> c_int; + pub fn g_regex_get_max_lookbehind(regex: *const GRegex) -> c_int; + pub fn g_regex_get_pattern(regex: *const GRegex) -> *const c_char; + pub fn g_regex_get_string_number(regex: *const GRegex, name: *const c_char) -> c_int; + pub fn g_regex_match( + regex: *const GRegex, + string: *const c_char, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + ) -> gboolean; + pub fn g_regex_match_all( + regex: *const GRegex, + string: *const c_char, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + ) -> gboolean; + pub fn g_regex_match_all_full( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_regex_match_full( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + match_options: GRegexMatchFlags, + match_info: *mut *mut GMatchInfo, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_regex_ref(regex: *mut GRegex) -> *mut GRegex; + pub fn g_regex_replace( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + replacement: *const c_char, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_regex_replace_eval( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + match_options: GRegexMatchFlags, + eval: GRegexEvalCallback, + user_data: gpointer, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_regex_replace_literal( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + replacement: *const c_char, + match_options: GRegexMatchFlags, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_regex_split( + regex: *const GRegex, + string: *const c_char, + match_options: GRegexMatchFlags, + ) -> *mut *mut c_char; + pub fn g_regex_split_full( + regex: *const GRegex, + string: *const c_char, + string_len: ssize_t, + start_position: c_int, + match_options: GRegexMatchFlags, + max_tokens: c_int, + error: *mut *mut GError, + ) -> *mut *mut c_char; + pub fn g_regex_unref(regex: *mut GRegex); + pub fn g_regex_check_replacement( + replacement: *const c_char, + has_references: *mut gboolean, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_regex_error_quark() -> GQuark; + pub fn g_regex_escape_nul(string: *const c_char, length: c_int) -> *mut c_char; + pub fn g_regex_escape_string(string: *const c_char, length: c_int) -> *mut c_char; + pub fn g_regex_match_simple( + pattern: *const c_char, + string: *const c_char, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + ) -> gboolean; + pub fn g_regex_split_simple( + pattern: *const c_char, + string: *const c_char, + compile_options: GRegexCompileFlags, + match_options: GRegexMatchFlags, + ) -> *mut *mut c_char; + + //========================================================================= + // GSList + //========================================================================= + pub fn g_slist_alloc() -> *mut GSList; + pub fn g_slist_append(list: *mut GSList, data: gpointer) -> *mut GSList; + pub fn g_slist_concat(list1: *mut GSList, list2: *mut GSList) -> *mut GSList; + pub fn g_slist_copy(list: *mut GSList) -> *mut GSList; + pub fn g_slist_copy_deep( + list: *mut GSList, + func: GCopyFunc, + user_data: gpointer, + ) -> *mut GSList; + pub fn g_slist_delete_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList; + pub fn g_slist_find(list: *mut GSList, data: gconstpointer) -> *mut GSList; + pub fn g_slist_find_custom( + list: *mut GSList, + data: gconstpointer, + func: GCompareFunc, + ) -> *mut GSList; + pub fn g_slist_foreach(list: *mut GSList, func: GFunc, user_data: gpointer); + pub fn g_slist_free(list: *mut GSList); + pub fn g_slist_free_1(list: *mut GSList); + pub fn g_slist_free_full(list: *mut GSList, free_func: GDestroyNotify); + pub fn g_slist_index(list: *mut GSList, data: gconstpointer) -> c_int; + pub fn g_slist_insert(list: *mut GSList, data: gpointer, position: c_int) -> *mut GSList; + pub fn g_slist_insert_before( + slist: *mut GSList, + sibling: *mut GSList, + data: gpointer, + ) -> *mut GSList; + pub fn g_slist_insert_sorted( + list: *mut GSList, + data: gpointer, + func: GCompareFunc, + ) -> *mut GSList; + pub fn g_slist_insert_sorted_with_data( + list: *mut GSList, + data: gpointer, + func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GSList; + pub fn g_slist_last(list: *mut GSList) -> *mut GSList; + pub fn g_slist_length(list: *mut GSList) -> c_uint; + pub fn g_slist_nth(list: *mut GSList, n: c_uint) -> *mut GSList; + pub fn g_slist_nth_data(list: *mut GSList, n: c_uint) -> gpointer; + pub fn g_slist_position(list: *mut GSList, llink: *mut GSList) -> c_int; + pub fn g_slist_prepend(list: *mut GSList, data: gpointer) -> *mut GSList; + pub fn g_slist_remove(list: *mut GSList, data: gconstpointer) -> *mut GSList; + pub fn g_slist_remove_all(list: *mut GSList, data: gconstpointer) -> *mut GSList; + pub fn g_slist_remove_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList; + pub fn g_slist_reverse(list: *mut GSList) -> *mut GSList; + pub fn g_slist_sort(list: *mut GSList, compare_func: GCompareFunc) -> *mut GSList; + pub fn g_slist_sort_with_data( + list: *mut GSList, + compare_func: GCompareDataFunc, + user_data: gpointer, + ) -> *mut GSList; + + //========================================================================= + // GScanner + //========================================================================= + pub fn g_scanner_cur_line(scanner: *mut GScanner) -> c_uint; + pub fn g_scanner_cur_position(scanner: *mut GScanner) -> c_uint; + pub fn g_scanner_cur_token(scanner: *mut GScanner) -> GTokenType; + pub fn g_scanner_cur_value(scanner: *mut GScanner) -> GTokenValue; + pub fn g_scanner_destroy(scanner: *mut GScanner); + pub fn g_scanner_eof(scanner: *mut GScanner) -> gboolean; + pub fn g_scanner_error(scanner: *mut GScanner, format: *const c_char, ...); + pub fn g_scanner_get_next_token(scanner: *mut GScanner) -> GTokenType; + pub fn g_scanner_input_file(scanner: *mut GScanner, input_fd: c_int); + pub fn g_scanner_input_text(scanner: *mut GScanner, text: *const c_char, text_len: c_uint); + pub fn g_scanner_lookup_symbol(scanner: *mut GScanner, symbol: *const c_char) -> gpointer; + pub fn g_scanner_peek_next_token(scanner: *mut GScanner) -> GTokenType; + pub fn g_scanner_scope_add_symbol( + scanner: *mut GScanner, + scope_id: c_uint, + symbol: *const c_char, + value: gpointer, + ); + pub fn g_scanner_scope_foreach_symbol( + scanner: *mut GScanner, + scope_id: c_uint, + func: GHFunc, + user_data: gpointer, + ); + pub fn g_scanner_scope_lookup_symbol( + scanner: *mut GScanner, + scope_id: c_uint, + symbol: *const c_char, + ) -> gpointer; + pub fn g_scanner_scope_remove_symbol( + scanner: *mut GScanner, + scope_id: c_uint, + symbol: *const c_char, + ); + pub fn g_scanner_set_scope(scanner: *mut GScanner, scope_id: c_uint) -> c_uint; + pub fn g_scanner_sync_file_offset(scanner: *mut GScanner); + pub fn g_scanner_unexp_token( + scanner: *mut GScanner, + expected_token: GTokenType, + identifier_spec: *const c_char, + symbol_spec: *const c_char, + symbol_name: *const c_char, + message: *const c_char, + is_error: c_int, + ); + pub fn g_scanner_warn(scanner: *mut GScanner, format: *const c_char, ...); + pub fn g_scanner_new(config_templ: *const GScannerConfig) -> *mut GScanner; + + //========================================================================= + // GSequence + //========================================================================= + pub fn g_sequence_append(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter; + pub fn g_sequence_foreach(seq: *mut GSequence, func: GFunc, user_data: gpointer); + pub fn g_sequence_free(seq: *mut GSequence); + pub fn g_sequence_get_begin_iter(seq: *mut GSequence) -> *mut GSequenceIter; + pub fn g_sequence_get_end_iter(seq: *mut GSequence) -> *mut GSequenceIter; + pub fn g_sequence_get_iter_at_pos(seq: *mut GSequence, pos: c_int) -> *mut GSequenceIter; + pub fn g_sequence_get_length(seq: *mut GSequence) -> c_int; + pub fn g_sequence_insert_sorted( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_insert_sorted_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_is_empty(seq: *mut GSequence) -> gboolean; + pub fn g_sequence_lookup( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_lookup_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_prepend(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter; + pub fn g_sequence_search( + seq: *mut GSequence, + data: gpointer, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_search_iter( + seq: *mut GSequence, + data: gpointer, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ) -> *mut GSequenceIter; + pub fn g_sequence_sort(seq: *mut GSequence, cmp_func: GCompareDataFunc, cmp_data: gpointer); + pub fn g_sequence_sort_iter( + seq: *mut GSequence, + cmp_func: GSequenceIterCompareFunc, + cmp_data: gpointer, + ); + pub fn g_sequence_foreach_range( + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + func: GFunc, + user_data: gpointer, + ); + pub fn g_sequence_get(iter: *mut GSequenceIter) -> gpointer; + pub fn g_sequence_insert_before(iter: *mut GSequenceIter, data: gpointer) + -> *mut GSequenceIter; + pub fn g_sequence_move(src: *mut GSequenceIter, dest: *mut GSequenceIter); + pub fn g_sequence_move_range( + dest: *mut GSequenceIter, + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + ); + pub fn g_sequence_new(data_destroy: GDestroyNotify) -> *mut GSequence; + pub fn g_sequence_range_get_midpoint( + begin: *mut GSequenceIter, + end: *mut GSequenceIter, + ) -> *mut GSequenceIter; + pub fn g_sequence_remove(iter: *mut GSequenceIter); + pub fn g_sequence_remove_range(begin: *mut GSequenceIter, end: *mut GSequenceIter); + pub fn g_sequence_set(iter: *mut GSequenceIter, data: gpointer); + pub fn g_sequence_sort_changed( + iter: *mut GSequenceIter, + cmp_func: GCompareDataFunc, + cmp_data: gpointer, + ); + pub fn g_sequence_sort_changed_iter( + iter: *mut GSequenceIter, + iter_cmp: GSequenceIterCompareFunc, + cmp_data: gpointer, + ); + pub fn g_sequence_swap(a: *mut GSequenceIter, b: *mut GSequenceIter); + + //========================================================================= + // GSequenceIter + //========================================================================= + pub fn g_sequence_iter_compare(a: *mut GSequenceIter, b: *mut GSequenceIter) -> c_int; + pub fn g_sequence_iter_get_position(iter: *mut GSequenceIter) -> c_int; + pub fn g_sequence_iter_get_sequence(iter: *mut GSequenceIter) -> *mut GSequence; + pub fn g_sequence_iter_is_begin(iter: *mut GSequenceIter) -> gboolean; + pub fn g_sequence_iter_is_end(iter: *mut GSequenceIter) -> gboolean; + pub fn g_sequence_iter_move(iter: *mut GSequenceIter, delta: c_int) -> *mut GSequenceIter; + pub fn g_sequence_iter_next(iter: *mut GSequenceIter) -> *mut GSequenceIter; + pub fn g_sequence_iter_prev(iter: *mut GSequenceIter) -> *mut GSequenceIter; + + //========================================================================= + // GSource + //========================================================================= + pub fn g_source_get_type() -> GType; + pub fn g_source_new(source_funcs: *mut GSourceFuncs, struct_size: c_uint) -> *mut GSource; + pub fn g_source_add_child_source(source: *mut GSource, child_source: *mut GSource); + pub fn g_source_add_poll(source: *mut GSource, fd: *mut GPollFD); + pub fn g_source_add_unix_fd(source: *mut GSource, fd: c_int, events: GIOCondition) -> gpointer; + pub fn g_source_attach(source: *mut GSource, context: *mut GMainContext) -> c_uint; + pub fn g_source_destroy(source: *mut GSource); + pub fn g_source_get_can_recurse(source: *mut GSource) -> gboolean; + pub fn g_source_get_context(source: *mut GSource) -> *mut GMainContext; + pub fn g_source_get_current_time(source: *mut GSource, timeval: *mut GTimeVal); + pub fn g_source_get_id(source: *mut GSource) -> c_uint; + pub fn g_source_get_name(source: *mut GSource) -> *const c_char; + pub fn g_source_get_priority(source: *mut GSource) -> c_int; + pub fn g_source_get_ready_time(source: *mut GSource) -> i64; + pub fn g_source_get_time(source: *mut GSource) -> i64; + pub fn g_source_is_destroyed(source: *mut GSource) -> gboolean; + pub fn g_source_modify_unix_fd(source: *mut GSource, tag: gpointer, new_events: GIOCondition); + pub fn g_source_query_unix_fd(source: *mut GSource, tag: gpointer) -> GIOCondition; + pub fn g_source_ref(source: *mut GSource) -> *mut GSource; + pub fn g_source_remove_child_source(source: *mut GSource, child_source: *mut GSource); + pub fn g_source_remove_poll(source: *mut GSource, fd: *mut GPollFD); + pub fn g_source_remove_unix_fd(source: *mut GSource, tag: gpointer); + pub fn g_source_set_callback( + source: *mut GSource, + func: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ); + pub fn g_source_set_callback_indirect( + source: *mut GSource, + callback_data: gpointer, + callback_funcs: *mut GSourceCallbackFuncs, + ); + pub fn g_source_set_can_recurse(source: *mut GSource, can_recurse: gboolean); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_source_set_dispose_function(source: *mut GSource, dispose: GSourceDisposeFunc); + pub fn g_source_set_funcs(source: *mut GSource, funcs: *mut GSourceFuncs); + pub fn g_source_set_name(source: *mut GSource, name: *const c_char); + pub fn g_source_set_priority(source: *mut GSource, priority: c_int); + pub fn g_source_set_ready_time(source: *mut GSource, ready_time: i64); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_source_set_static_name(source: *mut GSource, name: *const c_char); + pub fn g_source_unref(source: *mut GSource); + pub fn g_source_remove(tag: c_uint) -> gboolean; + pub fn g_source_remove_by_funcs_user_data( + funcs: *mut GSourceFuncs, + user_data: gpointer, + ) -> gboolean; + pub fn g_source_remove_by_user_data(user_data: gpointer) -> gboolean; + pub fn g_source_set_name_by_id(tag: c_uint, name: *const c_char); + + //========================================================================= + // GString + //========================================================================= + pub fn g_gstring_get_type() -> GType; + pub fn g_string_new(init: *const c_char) -> *mut GString; + pub fn g_string_new_len(init: *const c_char, len: ssize_t) -> *mut GString; + pub fn g_string_sized_new(dfl_size: size_t) -> *mut GString; + pub fn g_string_append(string: *mut GString, val: *const c_char) -> *mut GString; + pub fn g_string_append_c(string: *mut GString, c: c_char) -> *mut GString; + pub fn g_string_append_len( + string: *mut GString, + val: *const c_char, + len: ssize_t, + ) -> *mut GString; + pub fn g_string_append_printf(string: *mut GString, format: *const c_char, ...); + pub fn g_string_append_unichar(string: *mut GString, wc: u32) -> *mut GString; + pub fn g_string_append_uri_escaped( + string: *mut GString, + unescaped: *const c_char, + reserved_chars_allowed: *const c_char, + allow_utf8: gboolean, + ) -> *mut GString; + //pub fn g_string_append_vprintf(string: *mut GString, format: *const c_char, args: /*Unimplemented*/va_list); + pub fn g_string_ascii_down(string: *mut GString) -> *mut GString; + pub fn g_string_ascii_up(string: *mut GString) -> *mut GString; + pub fn g_string_assign(string: *mut GString, rval: *const c_char) -> *mut GString; + pub fn g_string_down(string: *mut GString) -> *mut GString; + pub fn g_string_equal(v: *const GString, v2: *const GString) -> gboolean; + pub fn g_string_erase(string: *mut GString, pos: ssize_t, len: ssize_t) -> *mut GString; + pub fn g_string_free(string: *mut GString, free_segment: gboolean) -> *mut c_char; + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_string_free_and_steal(string: *mut GString) -> *mut c_char; + pub fn g_string_free_to_bytes(string: *mut GString) -> *mut GBytes; + pub fn g_string_hash(str: *const GString) -> c_uint; + pub fn g_string_insert(string: *mut GString, pos: ssize_t, val: *const c_char) -> *mut GString; + pub fn g_string_insert_c(string: *mut GString, pos: ssize_t, c: c_char) -> *mut GString; + pub fn g_string_insert_len( + string: *mut GString, + pos: ssize_t, + val: *const c_char, + len: ssize_t, + ) -> *mut GString; + pub fn g_string_insert_unichar(string: *mut GString, pos: ssize_t, wc: u32) -> *mut GString; + pub fn g_string_overwrite( + string: *mut GString, + pos: size_t, + val: *const c_char, + ) -> *mut GString; + pub fn g_string_overwrite_len( + string: *mut GString, + pos: size_t, + val: *const c_char, + len: ssize_t, + ) -> *mut GString; + pub fn g_string_prepend(string: *mut GString, val: *const c_char) -> *mut GString; + pub fn g_string_prepend_c(string: *mut GString, c: c_char) -> *mut GString; + pub fn g_string_prepend_len( + string: *mut GString, + val: *const c_char, + len: ssize_t, + ) -> *mut GString; + pub fn g_string_prepend_unichar(string: *mut GString, wc: u32) -> *mut GString; + pub fn g_string_printf(string: *mut GString, format: *const c_char, ...); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_string_replace( + string: *mut GString, + find: *const c_char, + replace: *const c_char, + limit: c_uint, + ) -> c_uint; + pub fn g_string_set_size(string: *mut GString, len: size_t) -> *mut GString; + pub fn g_string_truncate(string: *mut GString, len: size_t) -> *mut GString; + pub fn g_string_up(string: *mut GString) -> *mut GString; + //pub fn g_string_vprintf(string: *mut GString, format: *const c_char, args: /*Unimplemented*/va_list); + + //========================================================================= + // GStringChunk + //========================================================================= + pub fn g_string_chunk_clear(chunk: *mut GStringChunk); + pub fn g_string_chunk_free(chunk: *mut GStringChunk); + pub fn g_string_chunk_insert(chunk: *mut GStringChunk, string: *const c_char) -> *mut c_char; + pub fn g_string_chunk_insert_const( + chunk: *mut GStringChunk, + string: *const c_char, + ) -> *mut c_char; + pub fn g_string_chunk_insert_len( + chunk: *mut GStringChunk, + string: *const c_char, + len: ssize_t, + ) -> *mut c_char; + pub fn g_string_chunk_new(size: size_t) -> *mut GStringChunk; + + //========================================================================= + // GStrvBuilder + //========================================================================= + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_add(builder: *mut GStrvBuilder, value: *const c_char); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_add_many(builder: *mut GStrvBuilder, ...); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_addv(builder: *mut GStrvBuilder, value: *mut *const c_char); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_end(builder: *mut GStrvBuilder) -> c_char; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_ref(builder: *mut GStrvBuilder) -> *mut GStrvBuilder; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_unref(builder: *mut GStrvBuilder); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_strv_builder_new() -> *mut GStrvBuilder; + + //========================================================================= + // GTestCase + //========================================================================= + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_test_case_free(test_case: *mut GTestCase); + + //========================================================================= + // GTestLogBuffer + //========================================================================= + pub fn g_test_log_buffer_free(tbuffer: *mut GTestLogBuffer); + //pub fn g_test_log_buffer_pop(tbuffer: *mut GTestLogBuffer) -> /*Ignored*/*mut GTestLogMsg; + pub fn g_test_log_buffer_push(tbuffer: *mut GTestLogBuffer, n_bytes: c_uint, bytes: *const u8); + pub fn g_test_log_buffer_new() -> *mut GTestLogBuffer; + + //========================================================================= + // GTestLogMsg + //========================================================================= + //pub fn g_test_log_msg_free(tmsg: /*Ignored*/*mut GTestLogMsg); + + //========================================================================= + // GTestSuite + //========================================================================= + pub fn g_test_suite_add(suite: *mut GTestSuite, test_case: *mut GTestCase); + pub fn g_test_suite_add_suite(suite: *mut GTestSuite, nestedsuite: *mut GTestSuite); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_test_suite_free(suite: *mut GTestSuite); + + //========================================================================= + // GThread + //========================================================================= + pub fn g_thread_get_type() -> GType; + pub fn g_thread_new(name: *const c_char, func: GThreadFunc, data: gpointer) -> *mut GThread; + pub fn g_thread_try_new( + name: *const c_char, + func: GThreadFunc, + data: gpointer, + error: *mut *mut GError, + ) -> *mut GThread; + pub fn g_thread_join(thread: *mut GThread) -> gpointer; + pub fn g_thread_ref(thread: *mut GThread) -> *mut GThread; + pub fn g_thread_unref(thread: *mut GThread); + pub fn g_thread_error_quark() -> GQuark; + pub fn g_thread_exit(retval: gpointer); + pub fn g_thread_self() -> *mut GThread; + pub fn g_thread_yield(); + + //========================================================================= + // GThreadPool + //========================================================================= + pub fn g_thread_pool_free(pool: *mut GThreadPool, immediate: gboolean, wait_: gboolean); + pub fn g_thread_pool_get_max_threads(pool: *mut GThreadPool) -> c_int; + pub fn g_thread_pool_get_num_threads(pool: *mut GThreadPool) -> c_uint; + pub fn g_thread_pool_move_to_front(pool: *mut GThreadPool, data: gpointer) -> gboolean; + pub fn g_thread_pool_push( + pool: *mut GThreadPool, + data: gpointer, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_thread_pool_set_max_threads( + pool: *mut GThreadPool, + max_threads: c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_thread_pool_set_sort_function( + pool: *mut GThreadPool, + func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_thread_pool_unprocessed(pool: *mut GThreadPool) -> c_uint; + pub fn g_thread_pool_get_max_idle_time() -> c_uint; + pub fn g_thread_pool_get_max_unused_threads() -> c_int; + pub fn g_thread_pool_get_num_unused_threads() -> c_uint; + pub fn g_thread_pool_new( + func: GFunc, + user_data: gpointer, + max_threads: c_int, + exclusive: gboolean, + error: *mut *mut GError, + ) -> *mut GThreadPool; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_thread_pool_new_full( + func: GFunc, + user_data: gpointer, + item_free_func: GDestroyNotify, + max_threads: c_int, + exclusive: gboolean, + error: *mut *mut GError, + ) -> *mut GThreadPool; + pub fn g_thread_pool_set_max_idle_time(interval: c_uint); + pub fn g_thread_pool_set_max_unused_threads(max_threads: c_int); + pub fn g_thread_pool_stop_unused_threads(); + + //========================================================================= + // GTimeVal + //========================================================================= + pub fn g_time_val_add(time_: *mut GTimeVal, microseconds: c_long); + pub fn g_time_val_to_iso8601(time_: *mut GTimeVal) -> *mut c_char; + pub fn g_time_val_from_iso8601(iso_date: *const c_char, time_: *mut GTimeVal) -> gboolean; + + //========================================================================= + // GTimeZone + //========================================================================= + pub fn g_time_zone_get_type() -> GType; + pub fn g_time_zone_new(identifier: *const c_char) -> *mut GTimeZone; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_time_zone_new_identifier(identifier: *const c_char) -> *mut GTimeZone; + pub fn g_time_zone_new_local() -> *mut GTimeZone; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_time_zone_new_offset(seconds: i32) -> *mut GTimeZone; + pub fn g_time_zone_new_utc() -> *mut GTimeZone; + pub fn g_time_zone_adjust_time(tz: *mut GTimeZone, type_: GTimeType, time_: *mut i64) -> c_int; + pub fn g_time_zone_find_interval(tz: *mut GTimeZone, type_: GTimeType, time_: i64) -> c_int; + pub fn g_time_zone_get_abbreviation(tz: *mut GTimeZone, interval: c_int) -> *const c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_time_zone_get_identifier(tz: *mut GTimeZone) -> *const c_char; + pub fn g_time_zone_get_offset(tz: *mut GTimeZone, interval: c_int) -> i32; + pub fn g_time_zone_is_dst(tz: *mut GTimeZone, interval: c_int) -> gboolean; + pub fn g_time_zone_ref(tz: *mut GTimeZone) -> *mut GTimeZone; + pub fn g_time_zone_unref(tz: *mut GTimeZone); + + //========================================================================= + // GTimer + //========================================================================= + pub fn g_timer_continue(timer: *mut GTimer); + pub fn g_timer_destroy(timer: *mut GTimer); + pub fn g_timer_elapsed(timer: *mut GTimer, microseconds: *mut c_ulong) -> c_double; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_timer_is_active(timer: *mut GTimer) -> gboolean; + pub fn g_timer_reset(timer: *mut GTimer); + pub fn g_timer_start(timer: *mut GTimer); + pub fn g_timer_stop(timer: *mut GTimer); + pub fn g_timer_new() -> *mut GTimer; + + //========================================================================= + // GTrashStack + //========================================================================= + pub fn g_trash_stack_height(stack_p: *mut *mut GTrashStack) -> c_uint; + pub fn g_trash_stack_peek(stack_p: *mut *mut GTrashStack) -> gpointer; + pub fn g_trash_stack_pop(stack_p: *mut *mut GTrashStack) -> gpointer; + pub fn g_trash_stack_push(stack_p: *mut *mut GTrashStack, data_p: gpointer); + + //========================================================================= + // GTree + //========================================================================= + pub fn g_tree_get_type() -> GType; + pub fn g_tree_new(key_compare_func: GCompareFunc) -> *mut GTree; + pub fn g_tree_new_full( + key_compare_func: GCompareDataFunc, + key_compare_data: gpointer, + key_destroy_func: GDestroyNotify, + value_destroy_func: GDestroyNotify, + ) -> *mut GTree; + pub fn g_tree_new_with_data( + key_compare_func: GCompareDataFunc, + key_compare_data: gpointer, + ) -> *mut GTree; + pub fn g_tree_destroy(tree: *mut GTree); + pub fn g_tree_foreach(tree: *mut GTree, func: GTraverseFunc, user_data: gpointer); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_foreach_node(tree: *mut GTree, func: GTraverseNodeFunc, user_data: gpointer); + pub fn g_tree_height(tree: *mut GTree) -> c_int; + pub fn g_tree_insert(tree: *mut GTree, key: gpointer, value: gpointer); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_insert_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode; + pub fn g_tree_lookup(tree: *mut GTree, key: gconstpointer) -> gpointer; + pub fn g_tree_lookup_extended( + tree: *mut GTree, + lookup_key: gconstpointer, + orig_key: *mut gpointer, + value: *mut gpointer, + ) -> gboolean; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_lookup_node(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_lower_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; + pub fn g_tree_nnodes(tree: *mut GTree) -> c_int; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_first(tree: *mut GTree) -> *mut GTreeNode; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_last(tree: *mut GTree) -> *mut GTreeNode; + pub fn g_tree_ref(tree: *mut GTree) -> *mut GTree; + pub fn g_tree_remove(tree: *mut GTree, key: gconstpointer) -> gboolean; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_tree_remove_all(tree: *mut GTree); + pub fn g_tree_replace(tree: *mut GTree, key: gpointer, value: gpointer); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_replace_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode; + pub fn g_tree_search( + tree: *mut GTree, + search_func: GCompareFunc, + user_data: gconstpointer, + ) -> gpointer; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_search_node( + tree: *mut GTree, + search_func: GCompareFunc, + user_data: gconstpointer, + ) -> *mut GTreeNode; + pub fn g_tree_steal(tree: *mut GTree, key: gconstpointer) -> gboolean; + pub fn g_tree_traverse( + tree: *mut GTree, + traverse_func: GTraverseFunc, + traverse_type: GTraverseType, + user_data: gpointer, + ); + pub fn g_tree_unref(tree: *mut GTree); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_upper_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode; + + //========================================================================= + // GTreeNode + //========================================================================= + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_key(node: *mut GTreeNode) -> gpointer; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_next(node: *mut GTreeNode) -> *mut GTreeNode; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_previous(node: *mut GTreeNode) -> *mut GTreeNode; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_tree_node_value(node: *mut GTreeNode) -> gpointer; + + //========================================================================= + // GUri + //========================================================================= + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_type() -> GType; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_auth_params(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_flags(uri: *mut GUri) -> GUriFlags; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_fragment(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_host(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_password(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_path(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_port(uri: *mut GUri) -> c_int; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_query(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_scheme(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_user(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_get_userinfo(uri: *mut GUri) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_parse_relative( + base_uri: *mut GUri, + uri_ref: *const c_char, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut GUri; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_ref(uri: *mut GUri) -> *mut GUri; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_to_string(uri: *mut GUri) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_to_string_partial(uri: *mut GUri, flags: GUriHideFlags) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_unref(uri: *mut GUri); + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_build( + flags: GUriFlags, + scheme: *const c_char, + userinfo: *const c_char, + host: *const c_char, + port: c_int, + path: *const c_char, + query: *const c_char, + fragment: *const c_char, + ) -> *mut GUri; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_build_with_user( + flags: GUriFlags, + scheme: *const c_char, + user: *const c_char, + password: *const c_char, + auth_params: *const c_char, + host: *const c_char, + port: c_int, + path: *const c_char, + query: *const c_char, + fragment: *const c_char, + ) -> *mut GUri; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_error_quark() -> GQuark; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_escape_bytes( + unescaped: *const u8, + length: size_t, + reserved_chars_allowed: *const c_char, + ) -> *mut c_char; + pub fn g_uri_escape_string( + unescaped: *const c_char, + reserved_chars_allowed: *const c_char, + allow_utf8: gboolean, + ) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_is_valid( + uri_string: *const c_char, + flags: GUriFlags, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_join( + flags: GUriFlags, + scheme: *const c_char, + userinfo: *const c_char, + host: *const c_char, + port: c_int, + path: *const c_char, + query: *const c_char, + fragment: *const c_char, + ) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_join_with_user( + flags: GUriFlags, + scheme: *const c_char, + user: *const c_char, + password: *const c_char, + auth_params: *const c_char, + host: *const c_char, + port: c_int, + path: *const c_char, + query: *const c_char, + fragment: *const c_char, + ) -> *mut c_char; + pub fn g_uri_list_extract_uris(uri_list: *const c_char) -> *mut *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_parse( + uri_string: *const c_char, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut GUri; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_parse_params( + params: *const c_char, + length: ssize_t, + separators: *const c_char, + flags: GUriParamsFlags, + error: *mut *mut GError, + ) -> *mut GHashTable; + pub fn g_uri_parse_scheme(uri: *const c_char) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_peek_scheme(uri: *const c_char) -> *const c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_resolve_relative( + base_uri_string: *const c_char, + uri_ref: *const c_char, + flags: GUriFlags, + error: *mut *mut GError, + ) -> *mut c_char; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_split( + uri_ref: *const c_char, + flags: GUriFlags, + scheme: *mut *mut c_char, + userinfo: *mut *mut c_char, + host: *mut *mut c_char, + port: *mut c_int, + path: *mut *mut c_char, + query: *mut *mut c_char, + fragment: *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_split_network( + uri_string: *const c_char, + flags: GUriFlags, + scheme: *mut *mut c_char, + host: *mut *mut c_char, + port: *mut c_int, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_split_with_user( + uri_ref: *const c_char, + flags: GUriFlags, + scheme: *mut *mut c_char, + user: *mut *mut c_char, + password: *mut *mut c_char, + auth_params: *mut *mut c_char, + host: *mut *mut c_char, + port: *mut c_int, + path: *mut *mut c_char, + query: *mut *mut c_char, + fragment: *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_unescape_bytes( + escaped_string: *const c_char, + length: ssize_t, + illegal_characters: *const c_char, + error: *mut *mut GError, + ) -> *mut GBytes; + pub fn g_uri_unescape_segment( + escaped_string: *const c_char, + escaped_string_end: *const c_char, + illegal_characters: *const c_char, + ) -> *mut c_char; + pub fn g_uri_unescape_string( + escaped_string: *const c_char, + illegal_characters: *const c_char, + ) -> *mut c_char; + + //========================================================================= + // GUriParamsIter + //========================================================================= + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_params_iter_init( + iter: *mut GUriParamsIter, + params: *const c_char, + length: ssize_t, + separators: *const c_char, + flags: GUriParamsFlags, + ); + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_uri_params_iter_next( + iter: *mut GUriParamsIter, + attribute: *mut *mut c_char, + value: *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + + //========================================================================= + // GVariant + //========================================================================= + pub fn g_variant_new(format_string: *const c_char, ...) -> *mut GVariant; + pub fn g_variant_new_array( + child_type: *const GVariantType, + children: *const *mut GVariant, + n_children: size_t, + ) -> *mut GVariant; + pub fn g_variant_new_boolean(value: gboolean) -> *mut GVariant; + pub fn g_variant_new_byte(value: u8) -> *mut GVariant; + pub fn g_variant_new_bytestring(string: *const u8) -> *mut GVariant; + pub fn g_variant_new_bytestring_array( + strv: *const *const c_char, + length: ssize_t, + ) -> *mut GVariant; + pub fn g_variant_new_dict_entry(key: *mut GVariant, value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_new_double(value: c_double) -> *mut GVariant; + pub fn g_variant_new_fixed_array( + element_type: *const GVariantType, + elements: gconstpointer, + n_elements: size_t, + element_size: size_t, + ) -> *mut GVariant; + pub fn g_variant_new_from_bytes( + type_: *const GVariantType, + bytes: *mut GBytes, + trusted: gboolean, + ) -> *mut GVariant; + pub fn g_variant_new_from_data( + type_: *const GVariantType, + data: gconstpointer, + size: size_t, + trusted: gboolean, + notify: GDestroyNotify, + user_data: gpointer, + ) -> *mut GVariant; + pub fn g_variant_new_handle(value: i32) -> *mut GVariant; + pub fn g_variant_new_int16(value: i16) -> *mut GVariant; + pub fn g_variant_new_int32(value: i32) -> *mut GVariant; + pub fn g_variant_new_int64(value: i64) -> *mut GVariant; + pub fn g_variant_new_maybe( + child_type: *const GVariantType, + child: *mut GVariant, + ) -> *mut GVariant; + pub fn g_variant_new_object_path(object_path: *const c_char) -> *mut GVariant; + pub fn g_variant_new_objv(strv: *const *const c_char, length: ssize_t) -> *mut GVariant; + pub fn g_variant_new_parsed(format: *const c_char, ...) -> *mut GVariant; + //pub fn g_variant_new_parsed_va(format: *const c_char, app: /*Unimplemented*/*mut va_list) -> *mut GVariant; + pub fn g_variant_new_printf(format_string: *const c_char, ...) -> *mut GVariant; + pub fn g_variant_new_signature(signature: *const c_char) -> *mut GVariant; + pub fn g_variant_new_string(string: *const c_char) -> *mut GVariant; + pub fn g_variant_new_strv(strv: *const *const c_char, length: ssize_t) -> *mut GVariant; + pub fn g_variant_new_take_string(string: *mut c_char) -> *mut GVariant; + pub fn g_variant_new_tuple(children: *const *mut GVariant, n_children: size_t) + -> *mut GVariant; + pub fn g_variant_new_uint16(value: u16) -> *mut GVariant; + pub fn g_variant_new_uint32(value: u32) -> *mut GVariant; + pub fn g_variant_new_uint64(value: u64) -> *mut GVariant; + //pub fn g_variant_new_va(format_string: *const c_char, endptr: *mut *const c_char, app: /*Unimplemented*/*mut va_list) -> *mut GVariant; + pub fn g_variant_new_variant(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_byteswap(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_check_format_string( + value: *mut GVariant, + format_string: *const c_char, + copy_only: gboolean, + ) -> gboolean; + pub fn g_variant_classify(value: *mut GVariant) -> GVariantClass; + pub fn g_variant_compare(one: gconstpointer, two: gconstpointer) -> c_int; + pub fn g_variant_dup_bytestring(value: *mut GVariant, length: *mut size_t) -> *mut u8; + pub fn g_variant_dup_bytestring_array( + value: *mut GVariant, + length: *mut size_t, + ) -> *mut *mut c_char; + pub fn g_variant_dup_objv(value: *mut GVariant, length: *mut size_t) -> *mut *mut c_char; + pub fn g_variant_dup_string(value: *mut GVariant, length: *mut size_t) -> *mut c_char; + pub fn g_variant_dup_strv(value: *mut GVariant, length: *mut size_t) -> *mut *mut c_char; + pub fn g_variant_equal(one: gconstpointer, two: gconstpointer) -> gboolean; + pub fn g_variant_get(value: *mut GVariant, format_string: *const c_char, ...); + pub fn g_variant_get_boolean(value: *mut GVariant) -> gboolean; + pub fn g_variant_get_byte(value: *mut GVariant) -> u8; + pub fn g_variant_get_bytestring(value: *mut GVariant) -> *const u8; + pub fn g_variant_get_bytestring_array( + value: *mut GVariant, + length: *mut size_t, + ) -> *mut *const c_char; + pub fn g_variant_get_child( + value: *mut GVariant, + index_: size_t, + format_string: *const c_char, + ... + ); + pub fn g_variant_get_child_value(value: *mut GVariant, index_: size_t) -> *mut GVariant; + pub fn g_variant_get_data(value: *mut GVariant) -> gconstpointer; + pub fn g_variant_get_data_as_bytes(value: *mut GVariant) -> *mut GBytes; + pub fn g_variant_get_double(value: *mut GVariant) -> c_double; + pub fn g_variant_get_fixed_array( + value: *mut GVariant, + n_elements: *mut size_t, + element_size: size_t, + ) -> gconstpointer; + pub fn g_variant_get_handle(value: *mut GVariant) -> i32; + pub fn g_variant_get_int16(value: *mut GVariant) -> i16; + pub fn g_variant_get_int32(value: *mut GVariant) -> i32; + pub fn g_variant_get_int64(value: *mut GVariant) -> i64; + pub fn g_variant_get_maybe(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_get_normal_form(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_get_objv(value: *mut GVariant, length: *mut size_t) -> *mut *const c_char; + pub fn g_variant_get_size(value: *mut GVariant) -> size_t; + pub fn g_variant_get_string(value: *mut GVariant, length: *mut size_t) -> *const c_char; + pub fn g_variant_get_strv(value: *mut GVariant, length: *mut size_t) -> *mut *const c_char; + pub fn g_variant_get_type(value: *mut GVariant) -> *const GVariantType; + pub fn g_variant_get_type_string(value: *mut GVariant) -> *const c_char; + pub fn g_variant_get_uint16(value: *mut GVariant) -> u16; + pub fn g_variant_get_uint32(value: *mut GVariant) -> u32; + pub fn g_variant_get_uint64(value: *mut GVariant) -> u64; + //pub fn g_variant_get_va(value: *mut GVariant, format_string: *const c_char, endptr: *mut *const c_char, app: /*Unimplemented*/*mut va_list); + pub fn g_variant_get_variant(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_hash(value: gconstpointer) -> c_uint; + pub fn g_variant_is_container(value: *mut GVariant) -> gboolean; + pub fn g_variant_is_floating(value: *mut GVariant) -> gboolean; + pub fn g_variant_is_normal_form(value: *mut GVariant) -> gboolean; + pub fn g_variant_is_of_type(value: *mut GVariant, type_: *const GVariantType) -> gboolean; + pub fn g_variant_iter_new(value: *mut GVariant) -> *mut GVariantIter; + pub fn g_variant_lookup( + dictionary: *mut GVariant, + key: *const c_char, + format_string: *const c_char, + ... + ) -> gboolean; + pub fn g_variant_lookup_value( + dictionary: *mut GVariant, + key: *const c_char, + expected_type: *const GVariantType, + ) -> *mut GVariant; + pub fn g_variant_n_children(value: *mut GVariant) -> size_t; + pub fn g_variant_print(value: *mut GVariant, type_annotate: gboolean) -> *mut c_char; + pub fn g_variant_print_string( + value: *mut GVariant, + string: *mut GString, + type_annotate: gboolean, + ) -> *mut GString; + pub fn g_variant_ref(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_ref_sink(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_store(value: *mut GVariant, data: gpointer); + pub fn g_variant_take_ref(value: *mut GVariant) -> *mut GVariant; + pub fn g_variant_unref(value: *mut GVariant); + pub fn g_variant_is_object_path(string: *const c_char) -> gboolean; + pub fn g_variant_is_signature(string: *const c_char) -> gboolean; + pub fn g_variant_parse( + type_: *const GVariantType, + text: *const c_char, + limit: *const c_char, + endptr: *mut *const c_char, + error: *mut *mut GError, + ) -> *mut GVariant; + pub fn g_variant_parse_error_print_context( + error: *mut GError, + source_str: *const c_char, + ) -> *mut c_char; + pub fn g_variant_parse_error_quark() -> GQuark; + pub fn g_variant_parser_get_error_quark() -> GQuark; + + //========================================================================= + // GVariantBuilder + //========================================================================= + pub fn g_variant_builder_get_type() -> GType; + pub fn g_variant_builder_new(type_: *const GVariantType) -> *mut GVariantBuilder; + pub fn g_variant_builder_add(builder: *mut GVariantBuilder, format_string: *const c_char, ...); + pub fn g_variant_builder_add_parsed(builder: *mut GVariantBuilder, format: *const c_char, ...); + pub fn g_variant_builder_add_value(builder: *mut GVariantBuilder, value: *mut GVariant); + pub fn g_variant_builder_clear(builder: *mut GVariantBuilder); + pub fn g_variant_builder_close(builder: *mut GVariantBuilder); + pub fn g_variant_builder_end(builder: *mut GVariantBuilder) -> *mut GVariant; + pub fn g_variant_builder_init(builder: *mut GVariantBuilder, type_: *const GVariantType); + pub fn g_variant_builder_open(builder: *mut GVariantBuilder, type_: *const GVariantType); + pub fn g_variant_builder_ref(builder: *mut GVariantBuilder) -> *mut GVariantBuilder; + pub fn g_variant_builder_unref(builder: *mut GVariantBuilder); + + //========================================================================= + // GVariantDict + //========================================================================= + pub fn g_variant_dict_get_type() -> GType; + pub fn g_variant_dict_new(from_asv: *mut GVariant) -> *mut GVariantDict; + pub fn g_variant_dict_clear(dict: *mut GVariantDict); + pub fn g_variant_dict_contains(dict: *mut GVariantDict, key: *const c_char) -> gboolean; + pub fn g_variant_dict_end(dict: *mut GVariantDict) -> *mut GVariant; + pub fn g_variant_dict_init(dict: *mut GVariantDict, from_asv: *mut GVariant); + pub fn g_variant_dict_insert( + dict: *mut GVariantDict, + key: *const c_char, + format_string: *const c_char, + ... + ); + pub fn g_variant_dict_insert_value( + dict: *mut GVariantDict, + key: *const c_char, + value: *mut GVariant, + ); + pub fn g_variant_dict_lookup( + dict: *mut GVariantDict, + key: *const c_char, + format_string: *const c_char, + ... + ) -> gboolean; + pub fn g_variant_dict_lookup_value( + dict: *mut GVariantDict, + key: *const c_char, + expected_type: *const GVariantType, + ) -> *mut GVariant; + pub fn g_variant_dict_ref(dict: *mut GVariantDict) -> *mut GVariantDict; + pub fn g_variant_dict_remove(dict: *mut GVariantDict, key: *const c_char) -> gboolean; + pub fn g_variant_dict_unref(dict: *mut GVariantDict); + + //========================================================================= + // GVariantIter + //========================================================================= + pub fn g_variant_iter_copy(iter: *mut GVariantIter) -> *mut GVariantIter; + pub fn g_variant_iter_free(iter: *mut GVariantIter); + pub fn g_variant_iter_init(iter: *mut GVariantIter, value: *mut GVariant) -> size_t; + pub fn g_variant_iter_loop( + iter: *mut GVariantIter, + format_string: *const c_char, + ... + ) -> gboolean; + pub fn g_variant_iter_n_children(iter: *mut GVariantIter) -> size_t; + pub fn g_variant_iter_next( + iter: *mut GVariantIter, + format_string: *const c_char, + ... + ) -> gboolean; + pub fn g_variant_iter_next_value(iter: *mut GVariantIter) -> *mut GVariant; + + //========================================================================= + // GVariantType + //========================================================================= + pub fn g_variant_type_get_gtype() -> GType; + pub fn g_variant_type_new(type_string: *const c_char) -> *mut GVariantType; + pub fn g_variant_type_new_array(element: *const GVariantType) -> *mut GVariantType; + pub fn g_variant_type_new_dict_entry( + key: *const GVariantType, + value: *const GVariantType, + ) -> *mut GVariantType; + pub fn g_variant_type_new_maybe(element: *const GVariantType) -> *mut GVariantType; + pub fn g_variant_type_new_tuple( + items: *const *const GVariantType, + length: c_int, + ) -> *mut GVariantType; + pub fn g_variant_type_copy(type_: *const GVariantType) -> *mut GVariantType; + pub fn g_variant_type_dup_string(type_: *const GVariantType) -> *mut c_char; + pub fn g_variant_type_element(type_: *const GVariantType) -> *const GVariantType; + pub fn g_variant_type_equal(type1: gconstpointer, type2: gconstpointer) -> gboolean; + pub fn g_variant_type_first(type_: *const GVariantType) -> *const GVariantType; + pub fn g_variant_type_free(type_: *mut GVariantType); + pub fn g_variant_type_get_string_length(type_: *const GVariantType) -> size_t; + pub fn g_variant_type_hash(type_: gconstpointer) -> c_uint; + pub fn g_variant_type_is_array(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_basic(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_container(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_definite(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_dict_entry(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_maybe(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_subtype_of( + type_: *const GVariantType, + supertype: *const GVariantType, + ) -> gboolean; + pub fn g_variant_type_is_tuple(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_is_variant(type_: *const GVariantType) -> gboolean; + pub fn g_variant_type_key(type_: *const GVariantType) -> *const GVariantType; + pub fn g_variant_type_n_items(type_: *const GVariantType) -> size_t; + pub fn g_variant_type_next(type_: *const GVariantType) -> *const GVariantType; + pub fn g_variant_type_peek_string(type_: *const GVariantType) -> *const c_char; + pub fn g_variant_type_value(type_: *const GVariantType) -> *const GVariantType; + pub fn g_variant_type_checked_(arg0: *const c_char) -> *const GVariantType; + pub fn g_variant_type_string_get_depth_(type_string: *const c_char) -> size_t; + pub fn g_variant_type_string_is_valid(type_string: *const c_char) -> gboolean; + pub fn g_variant_type_string_scan( + string: *const c_char, + limit: *const c_char, + endptr: *mut *const c_char, + ) -> gboolean; + + //========================================================================= + // Other functions + //========================================================================= + pub fn g_access(filename: *const c_char, mode: c_int) -> c_int; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_aligned_alloc(n_blocks: size_t, n_block_bytes: size_t, alignment: size_t) -> gpointer; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_aligned_alloc0(n_blocks: size_t, n_block_bytes: size_t, alignment: size_t) + -> gpointer; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_aligned_free(mem: gpointer); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_aligned_free_sized(mem: gpointer, alignment: size_t, size: size_t); + pub fn g_ascii_digit_value(c: c_char) -> c_int; + pub fn g_ascii_dtostr(buffer: *mut c_char, buf_len: c_int, d: c_double) -> *mut c_char; + pub fn g_ascii_formatd( + buffer: *mut c_char, + buf_len: c_int, + format: *const c_char, + d: c_double, + ) -> *mut c_char; + pub fn g_ascii_strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn g_ascii_strdown(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_ascii_string_to_signed( + str: *const c_char, + base: c_uint, + min: i64, + max: i64, + out_num: *mut i64, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_ascii_string_to_unsigned( + str: *const c_char, + base: c_uint, + min: u64, + max: u64, + out_num: *mut u64, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_ascii_strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int; + pub fn g_ascii_strtod(nptr: *const c_char, endptr: *mut *mut c_char) -> c_double; + pub fn g_ascii_strtoll(nptr: *const c_char, endptr: *mut *mut c_char, base: c_uint) -> i64; + pub fn g_ascii_strtoull(nptr: *const c_char, endptr: *mut *mut c_char, base: c_uint) -> u64; + pub fn g_ascii_strup(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_ascii_tolower(c: c_char) -> c_char; + pub fn g_ascii_toupper(c: c_char) -> c_char; + pub fn g_ascii_xdigit_value(c: c_char) -> c_int; + pub fn g_assert_warning( + log_domain: *const c_char, + file: *const c_char, + line: c_int, + pretty_function: *const c_char, + expression: *const c_char, + ); + pub fn g_assertion_message( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + message: *const c_char, + ); + //pub fn g_assertion_message_cmpnum(domain: *const c_char, file: *const c_char, line: c_int, func: *const c_char, expr: *const c_char, arg1: /*Unimplemented*/long double, cmp: *const c_char, arg2: /*Unimplemented*/long double, numtype: c_char); + pub fn g_assertion_message_cmpstr( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + expr: *const c_char, + arg1: *const c_char, + cmp: *const c_char, + arg2: *const c_char, + ); + pub fn g_assertion_message_cmpstrv( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + expr: *const c_char, + arg1: *const *const c_char, + arg2: *const *const c_char, + first_wrong_idx: size_t, + ); + pub fn g_assertion_message_error( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + expr: *const c_char, + error: *const GError, + error_domain: GQuark, + error_code: c_int, + ); + pub fn g_assertion_message_expr( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + expr: *const c_char, + ); + pub fn g_atexit(func: GVoidFunc); + pub fn g_atomic_int_add(atomic: *mut c_int, val: c_int) -> c_int; + pub fn g_atomic_int_and(atomic: *mut c_uint, val: c_uint) -> c_uint; + pub fn g_atomic_int_compare_and_exchange( + atomic: *mut c_int, + oldval: c_int, + newval: c_int, + ) -> gboolean; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_atomic_int_compare_and_exchange_full( + atomic: *mut c_int, + oldval: c_int, + newval: c_int, + preval: *mut c_int, + ) -> gboolean; + pub fn g_atomic_int_dec_and_test(atomic: *mut c_int) -> gboolean; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_atomic_int_exchange(atomic: *mut c_int, newval: c_int) -> c_int; + pub fn g_atomic_int_exchange_and_add(atomic: *mut c_int, val: c_int) -> c_int; + pub fn g_atomic_int_get(atomic: *const c_int) -> c_int; + pub fn g_atomic_int_inc(atomic: *mut c_int); + pub fn g_atomic_int_or(atomic: *mut c_uint, val: c_uint) -> c_uint; + pub fn g_atomic_int_set(atomic: *mut c_int, newval: c_int); + pub fn g_atomic_int_xor(atomic: *mut c_uint, val: c_uint) -> c_uint; + pub fn g_atomic_pointer_add(atomic: *mut c_void, val: ssize_t) -> ssize_t; + pub fn g_atomic_pointer_and(atomic: *mut c_void, val: size_t) -> size_t; + pub fn g_atomic_pointer_compare_and_exchange( + atomic: *mut c_void, + oldval: gpointer, + newval: gpointer, + ) -> gboolean; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_atomic_pointer_compare_and_exchange_full( + atomic: *mut c_void, + oldval: gpointer, + newval: gpointer, + preval: *mut c_void, + ) -> gboolean; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_atomic_pointer_exchange(atomic: *mut c_void, newval: gpointer) -> gpointer; + pub fn g_atomic_pointer_get(atomic: *mut c_void) -> gpointer; + pub fn g_atomic_pointer_or(atomic: *mut c_void, val: size_t) -> size_t; + pub fn g_atomic_pointer_set(atomic: *mut c_void, newval: gpointer); + pub fn g_atomic_pointer_xor(atomic: *mut c_void, val: size_t) -> size_t; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_acquire(mem_block: gpointer) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_alloc(block_size: size_t) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_alloc0(block_size: size_t) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_dup(block_size: size_t, mem_block: gconstpointer) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_get_size(mem_block: gpointer) -> size_t; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_release(mem_block: gpointer); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_ref_count_compare(arc: *mut c_int, val: c_int) -> gboolean; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_ref_count_dec(arc: *mut c_int) -> gboolean; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_ref_count_inc(arc: *mut c_int); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_atomic_ref_count_init(arc: *mut c_int); + pub fn g_base64_decode(text: *const c_char, out_len: *mut size_t) -> *mut u8; + pub fn g_base64_decode_inplace(text: *mut u8, out_len: *mut size_t) -> *mut u8; + pub fn g_base64_decode_step( + in_: *const u8, + len: size_t, + out: *mut u8, + state: *mut c_int, + save: *mut c_uint, + ) -> size_t; + pub fn g_base64_encode(data: *const u8, len: size_t) -> *mut c_char; + pub fn g_base64_encode_close( + break_lines: gboolean, + out: *mut u8, + state: *mut c_int, + save: *mut c_int, + ) -> size_t; + pub fn g_base64_encode_step( + in_: *const u8, + len: size_t, + break_lines: gboolean, + out: *mut u8, + state: *mut c_int, + save: *mut c_int, + ) -> size_t; + pub fn g_basename(file_name: *const c_char) -> *const c_char; + pub fn g_bit_lock(address: *mut c_int, lock_bit: c_int); + pub fn g_bit_nth_lsf(mask: c_ulong, nth_bit: c_int) -> c_int; + pub fn g_bit_nth_msf(mask: c_ulong, nth_bit: c_int) -> c_int; + pub fn g_bit_storage(number: c_ulong) -> c_uint; + pub fn g_bit_trylock(address: *mut c_int, lock_bit: c_int) -> gboolean; + pub fn g_bit_unlock(address: *mut c_int, lock_bit: c_int); + pub fn g_build_filename(first_element: *const c_char, ...) -> *mut c_char; + //pub fn g_build_filename_valist(first_element: *const c_char, args: /*Unimplemented*/*mut va_list) -> *mut c_char; + pub fn g_build_filenamev(args: *mut *mut c_char) -> *mut c_char; + pub fn g_build_path(separator: *const c_char, first_element: *const c_char, ...) + -> *mut c_char; + pub fn g_build_pathv(separator: *const c_char, args: *mut *mut c_char) -> *mut c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_canonicalize_filename( + filename: *const c_char, + relative_to: *const c_char, + ) -> *mut c_char; + pub fn g_chdir(path: *const c_char) -> c_int; + pub fn glib_check_version( + required_major: c_uint, + required_minor: c_uint, + required_micro: c_uint, + ) -> *const c_char; + pub fn g_child_watch_add(pid: GPid, function: GChildWatchFunc, data: gpointer) -> c_uint; + pub fn g_child_watch_add_full( + priority: c_int, + pid: GPid, + function: GChildWatchFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + pub fn g_child_watch_source_new(pid: GPid) -> *mut GSource; + pub fn g_clear_error(error: *mut *mut GError); + pub fn g_clear_handle_id(tag_ptr: *mut c_uint, clear_func: GClearHandleFunc); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_clear_list(list_ptr: *mut *mut GList, destroy: GDestroyNotify); + pub fn g_clear_pointer(pp: *mut gpointer, destroy: GDestroyNotify); + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_clear_slist(slist_ptr: *mut *mut GSList, destroy: GDestroyNotify); + pub fn g_close(fd: c_int, error: *mut *mut GError) -> gboolean; + pub fn g_compute_checksum_for_bytes( + checksum_type: GChecksumType, + data: *mut GBytes, + ) -> *mut c_char; + pub fn g_compute_checksum_for_data( + checksum_type: GChecksumType, + data: *const u8, + length: size_t, + ) -> *mut c_char; + pub fn g_compute_checksum_for_string( + checksum_type: GChecksumType, + str: *const c_char, + length: ssize_t, + ) -> *mut c_char; + pub fn g_compute_hmac_for_bytes( + digest_type: GChecksumType, + key: *mut GBytes, + data: *mut GBytes, + ) -> *mut c_char; + pub fn g_compute_hmac_for_data( + digest_type: GChecksumType, + key: *const u8, + key_len: size_t, + data: *const u8, + length: size_t, + ) -> *mut c_char; + pub fn g_compute_hmac_for_string( + digest_type: GChecksumType, + key: *const u8, + key_len: size_t, + str: *const c_char, + length: ssize_t, + ) -> *mut c_char; + pub fn g_convert( + str: *const u8, + len: ssize_t, + to_codeset: *const c_char, + from_codeset: *const c_char, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut u8; + pub fn g_convert_error_quark() -> GQuark; + pub fn g_convert_with_fallback( + str: *const u8, + len: ssize_t, + to_codeset: *const c_char, + from_codeset: *const c_char, + fallback: *const c_char, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut u8; + pub fn g_convert_with_iconv( + str: *const u8, + len: ssize_t, + converter: GIConv, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut u8; + pub fn g_datalist_clear(datalist: *mut *mut GData); + pub fn g_datalist_foreach( + datalist: *mut *mut GData, + func: GDataForeachFunc, + user_data: gpointer, + ); + pub fn g_datalist_get_data(datalist: *mut *mut GData, key: *const c_char) -> gpointer; + pub fn g_datalist_get_flags(datalist: *mut *mut GData) -> c_uint; + pub fn g_datalist_id_dup_data( + datalist: *mut *mut GData, + key_id: GQuark, + dup_func: GDuplicateFunc, + user_data: gpointer, + ) -> gpointer; + pub fn g_datalist_id_get_data(datalist: *mut *mut GData, key_id: GQuark) -> gpointer; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_datalist_id_remove_multiple( + datalist: *mut *mut GData, + keys: *mut GQuark, + n_keys: size_t, + ); + pub fn g_datalist_id_remove_no_notify(datalist: *mut *mut GData, key_id: GQuark) -> gpointer; + pub fn g_datalist_id_replace_data( + datalist: *mut *mut GData, + key_id: GQuark, + oldval: gpointer, + newval: gpointer, + destroy: GDestroyNotify, + old_destroy: *mut GDestroyNotify, + ) -> gboolean; + pub fn g_datalist_id_set_data_full( + datalist: *mut *mut GData, + key_id: GQuark, + data: gpointer, + destroy_func: GDestroyNotify, + ); + pub fn g_datalist_init(datalist: *mut *mut GData); + pub fn g_datalist_set_flags(datalist: *mut *mut GData, flags: c_uint); + pub fn g_datalist_unset_flags(datalist: *mut *mut GData, flags: c_uint); + pub fn g_dataset_destroy(dataset_location: gconstpointer); + pub fn g_dataset_foreach( + dataset_location: gconstpointer, + func: GDataForeachFunc, + user_data: gpointer, + ); + pub fn g_dataset_id_get_data(dataset_location: gconstpointer, key_id: GQuark) -> gpointer; + pub fn g_dataset_id_remove_no_notify( + dataset_location: gconstpointer, + key_id: GQuark, + ) -> gpointer; + pub fn g_dataset_id_set_data_full( + dataset_location: gconstpointer, + key_id: GQuark, + data: gpointer, + destroy_func: GDestroyNotify, + ); + pub fn g_dcgettext( + domain: *const c_char, + msgid: *const c_char, + category: c_int, + ) -> *const c_char; + pub fn g_dgettext(domain: *const c_char, msgid: *const c_char) -> *const c_char; + pub fn g_direct_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + pub fn g_direct_hash(v: gconstpointer) -> c_uint; + pub fn g_dngettext( + domain: *const c_char, + msgid: *const c_char, + msgid_plural: *const c_char, + n: c_ulong, + ) -> *const c_char; + pub fn g_double_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + pub fn g_double_hash(v: gconstpointer) -> c_uint; + pub fn g_dpgettext( + domain: *const c_char, + msgctxtid: *const c_char, + msgidoffset: size_t, + ) -> *const c_char; + pub fn g_dpgettext2( + domain: *const c_char, + context: *const c_char, + msgid: *const c_char, + ) -> *const c_char; + pub fn g_environ_getenv(envp: *mut *mut c_char, variable: *const c_char) -> *const c_char; + pub fn g_environ_setenv( + envp: *mut *mut c_char, + variable: *const c_char, + value: *const c_char, + overwrite: gboolean, + ) -> *mut *mut c_char; + pub fn g_environ_unsetenv(envp: *mut *mut c_char, variable: *const c_char) -> *mut *mut c_char; + pub fn g_file_error_from_errno(err_no: c_int) -> GFileError; + pub fn g_file_error_quark() -> GQuark; + pub fn g_file_get_contents( + filename: *const c_char, + contents: *mut *mut u8, + length: *mut size_t, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_file_open_tmp( + tmpl: *const c_char, + name_used: *mut *mut c_char, + error: *mut *mut GError, + ) -> c_int; + pub fn g_file_read_link(filename: *const c_char, error: *mut *mut GError) -> *mut c_char; + pub fn g_file_set_contents( + filename: *const c_char, + contents: *const u8, + length: ssize_t, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_66", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_66")))] + pub fn g_file_set_contents_full( + filename: *const c_char, + contents: *const u8, + length: ssize_t, + flags: GFileSetContentsFlags, + mode: c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_file_test(filename: *const c_char, test: GFileTest) -> gboolean; + pub fn g_filename_display_basename(filename: *const c_char) -> *mut c_char; + pub fn g_filename_display_name(filename: *const c_char) -> *mut c_char; + pub fn g_filename_from_uri( + uri: *const c_char, + hostname: *mut *mut c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_filename_from_utf8( + utf8string: *const c_char, + len: ssize_t, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_filename_to_uri( + filename: *const c_char, + hostname: *const c_char, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_filename_to_utf8( + opsysstring: *const c_char, + len: ssize_t, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_find_program_in_path(program: *const c_char) -> *mut c_char; + pub fn g_format_size(size: u64) -> *mut c_char; + pub fn g_format_size_for_display(size: i64) -> *mut c_char; + pub fn g_format_size_full(size: u64, flags: GFormatSizeFlags) -> *mut c_char; + pub fn g_fprintf(file: *mut FILE, format: *const c_char, ...) -> c_int; + pub fn g_free(mem: gpointer); + #[cfg(any(feature = "v2_76", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_76")))] + pub fn g_free_sized(mem: gpointer, size: size_t); + pub fn g_get_application_name() -> *const c_char; + pub fn g_get_charset(charset: *mut *const c_char) -> gboolean; + pub fn g_get_codeset() -> *mut c_char; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_get_console_charset(charset: *mut *const c_char) -> gboolean; + pub fn g_get_current_dir() -> *mut c_char; + pub fn g_get_current_time(result: *mut GTimeVal); + pub fn g_get_environ() -> *mut *mut c_char; + pub fn g_get_filename_charsets(filename_charsets: *mut *mut *const c_char) -> gboolean; + pub fn g_get_home_dir() -> *const c_char; + pub fn g_get_host_name() -> *const c_char; + pub fn g_get_language_names() -> *const *const c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_get_language_names_with_category(category_name: *const c_char) + -> *const *const c_char; + pub fn g_get_locale_variants(locale: *const c_char) -> *mut *mut c_char; + pub fn g_get_monotonic_time() -> i64; + pub fn g_get_num_processors() -> c_uint; + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + pub fn g_get_os_info(key_name: *const c_char) -> *mut c_char; + pub fn g_get_prgname() -> *const c_char; + pub fn g_get_real_name() -> *const c_char; + pub fn g_get_real_time() -> i64; + pub fn g_get_system_config_dirs() -> *const *const c_char; + pub fn g_get_system_data_dirs() -> *const *const c_char; + pub fn g_get_tmp_dir() -> *const c_char; + pub fn g_get_user_cache_dir() -> *const c_char; + pub fn g_get_user_config_dir() -> *const c_char; + pub fn g_get_user_data_dir() -> *const c_char; + pub fn g_get_user_name() -> *const c_char; + pub fn g_get_user_runtime_dir() -> *const c_char; + pub fn g_get_user_special_dir(directory: GUserDirectory) -> *const c_char; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_get_user_state_dir() -> *const c_char; + pub fn g_getenv(variable: *const c_char) -> *const c_char; + pub fn g_hostname_is_ascii_encoded(hostname: *const c_char) -> gboolean; + pub fn g_hostname_is_ip_address(hostname: *const c_char) -> gboolean; + pub fn g_hostname_is_non_ascii(hostname: *const c_char) -> gboolean; + pub fn g_hostname_to_ascii(hostname: *const c_char) -> *mut c_char; + pub fn g_hostname_to_unicode(hostname: *const c_char) -> *mut c_char; + pub fn g_iconv( + converter: GIConv, + inbuf: *mut *mut c_char, + inbytes_left: *mut size_t, + outbuf: *mut *mut c_char, + outbytes_left: *mut size_t, + ) -> size_t; + pub fn g_idle_add(function: GSourceFunc, data: gpointer) -> c_uint; + pub fn g_idle_add_full( + priority: c_int, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_idle_add_once(function: GSourceOnceFunc, data: gpointer) -> c_uint; + pub fn g_idle_remove_by_data(data: gpointer) -> gboolean; + pub fn g_idle_source_new() -> *mut GSource; + pub fn g_int64_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + pub fn g_int64_hash(v: gconstpointer) -> c_uint; + pub fn g_int_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + pub fn g_int_hash(v: gconstpointer) -> c_uint; + pub fn g_intern_static_string(string: *const c_char) -> *const c_char; + pub fn g_intern_string(string: *const c_char) -> *const c_char; + pub fn g_io_add_watch( + channel: *mut GIOChannel, + condition: GIOCondition, + func: GIOFunc, + user_data: gpointer, + ) -> c_uint; + pub fn g_io_add_watch_full( + channel: *mut GIOChannel, + priority: c_int, + condition: GIOCondition, + func: GIOFunc, + user_data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + pub fn g_io_create_watch(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource; + pub fn g_listenv() -> *mut *mut c_char; + pub fn g_locale_from_utf8( + utf8string: *const c_char, + len: ssize_t, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut u8; + pub fn g_locale_to_utf8( + opsysstring: *const u8, + len: ssize_t, + bytes_read: *mut size_t, + bytes_written: *mut size_t, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_log(log_domain: *const c_char, log_level: GLogLevelFlags, format: *const c_char, ...); + pub fn g_log_default_handler( + log_domain: *const c_char, + log_level: GLogLevelFlags, + message: *const c_char, + unused_data: gpointer, + ); + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_log_get_debug_enabled() -> gboolean; + pub fn g_log_remove_handler(log_domain: *const c_char, handler_id: c_uint); + pub fn g_log_set_always_fatal(fatal_mask: GLogLevelFlags) -> GLogLevelFlags; + #[cfg(any(feature = "v2_72", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_72")))] + pub fn g_log_set_debug_enabled(enabled: gboolean); + pub fn g_log_set_default_handler(log_func: GLogFunc, user_data: gpointer) -> GLogFunc; + pub fn g_log_set_fatal_mask( + log_domain: *const c_char, + fatal_mask: GLogLevelFlags, + ) -> GLogLevelFlags; + pub fn g_log_set_handler( + log_domain: *const c_char, + log_levels: GLogLevelFlags, + log_func: GLogFunc, + user_data: gpointer, + ) -> c_uint; + pub fn g_log_set_handler_full( + log_domain: *const c_char, + log_levels: GLogLevelFlags, + log_func: GLogFunc, + user_data: gpointer, + destroy: GDestroyNotify, + ) -> c_uint; + pub fn g_log_set_writer_func( + func: GLogWriterFunc, + user_data: gpointer, + user_data_free: GDestroyNotify, + ); + pub fn g_log_structured(log_domain: *const c_char, log_level: GLogLevelFlags, ...); + pub fn g_log_structured_array( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: size_t, + ); + pub fn g_log_structured_standard( + log_domain: *const c_char, + log_level: GLogLevelFlags, + file: *const c_char, + line: *const c_char, + func: *const c_char, + message_format: *const c_char, + ... + ); + pub fn g_log_variant( + log_domain: *const c_char, + log_level: GLogLevelFlags, + fields: *mut GVariant, + ); + pub fn g_log_writer_default( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: size_t, + user_data: gpointer, + ) -> GLogWriterOutput; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_log_writer_default_set_use_stderr(use_stderr: gboolean); + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_log_writer_default_would_drop( + log_level: GLogLevelFlags, + log_domain: *const c_char, + ) -> gboolean; + pub fn g_log_writer_format_fields( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: size_t, + use_color: gboolean, + ) -> *mut c_char; + pub fn g_log_writer_is_journald(output_fd: c_int) -> gboolean; + pub fn g_log_writer_journald( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: size_t, + user_data: gpointer, + ) -> GLogWriterOutput; + pub fn g_log_writer_standard_streams( + log_level: GLogLevelFlags, + fields: *const GLogField, + n_fields: size_t, + user_data: gpointer, + ) -> GLogWriterOutput; + pub fn g_log_writer_supports_color(output_fd: c_int) -> gboolean; + //pub fn g_logv(log_domain: *const c_char, log_level: GLogLevelFlags, format: *const c_char, args: /*Unimplemented*/va_list); + pub fn g_main_current_source() -> *mut GSource; + pub fn g_main_depth() -> c_int; + pub fn g_malloc(n_bytes: size_t) -> gpointer; + pub fn g_malloc0(n_bytes: size_t) -> gpointer; + pub fn g_malloc0_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + pub fn g_malloc_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + pub fn g_markup_collect_attributes( + element_name: *const c_char, + attribute_names: *mut *const c_char, + attribute_values: *mut *const c_char, + error: *mut *mut GError, + first_type: GMarkupCollectType, + first_attr: *const c_char, + ... + ) -> gboolean; + pub fn g_markup_error_quark() -> GQuark; + pub fn g_markup_escape_text(text: *const c_char, length: ssize_t) -> *mut c_char; + pub fn g_markup_printf_escaped(format: *const c_char, ...) -> *mut c_char; + //pub fn g_markup_vprintf_escaped(format: *const c_char, args: /*Unimplemented*/va_list) -> *mut c_char; + pub fn g_mem_is_system_malloc() -> gboolean; + pub fn g_mem_profile(); + pub fn g_mem_set_vtable(vtable: *mut GMemVTable); + pub fn g_memdup(mem: gconstpointer, byte_size: c_uint) -> gpointer; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_memdup2(mem: gconstpointer, byte_size: size_t) -> gpointer; + pub fn g_mkdir_with_parents(pathname: *const c_char, mode: c_int) -> c_int; + pub fn g_mkdtemp(tmpl: *mut c_char) -> *mut c_char; + pub fn g_mkdtemp_full(tmpl: *mut c_char, mode: c_int) -> *mut c_char; + pub fn g_mkstemp(tmpl: *mut c_char) -> c_int; + pub fn g_mkstemp_full(tmpl: *mut c_char, flags: c_int, mode: c_int) -> c_int; + pub fn g_nullify_pointer(nullify_location: *mut gpointer); + pub fn g_number_parser_error_quark() -> GQuark; + pub fn g_on_error_query(prg_name: *const c_char); + pub fn g_on_error_stack_trace(prg_name: *const c_char); + pub fn g_option_error_quark() -> GQuark; + pub fn g_parse_debug_string( + string: *const c_char, + keys: *const GDebugKey, + nkeys: c_uint, + ) -> c_uint; + pub fn g_path_get_basename(file_name: *const c_char) -> *mut c_char; + pub fn g_path_get_dirname(file_name: *const c_char) -> *mut c_char; + pub fn g_path_is_absolute(file_name: *const c_char) -> gboolean; + pub fn g_path_skip_root(file_name: *const c_char) -> *const c_char; + pub fn g_pattern_match( + pspec: *mut GPatternSpec, + string_length: c_uint, + string: *const c_char, + string_reversed: *const c_char, + ) -> gboolean; + pub fn g_pattern_match_simple(pattern: *const c_char, string: *const c_char) -> gboolean; + pub fn g_pattern_match_string(pspec: *mut GPatternSpec, string: *const c_char) -> gboolean; + pub fn g_pointer_bit_lock(address: *mut c_void, lock_bit: c_int); + pub fn g_pointer_bit_trylock(address: *mut c_void, lock_bit: c_int) -> gboolean; + pub fn g_pointer_bit_unlock(address: *mut c_void, lock_bit: c_int); + pub fn g_poll(fds: *mut GPollFD, nfds: c_uint, timeout: c_int) -> c_int; + pub fn g_prefix_error(err: *mut *mut GError, format: *const c_char, ...); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_prefix_error_literal(err: *mut *mut GError, prefix: *const c_char); + pub fn g_print(format: *const c_char, ...); + pub fn g_printerr(format: *const c_char, ...); + pub fn g_printf(format: *const c_char, ...) -> c_int; + //pub fn g_printf_string_upper_bound(format: *const c_char, args: /*Unimplemented*/va_list) -> size_t; + pub fn g_propagate_error(dest: *mut *mut GError, src: *mut GError); + pub fn g_propagate_prefixed_error( + dest: *mut *mut GError, + src: *mut GError, + format: *const c_char, + ... + ); + pub fn g_qsort_with_data( + pbase: gconstpointer, + total_elems: c_int, + size: size_t, + compare_func: GCompareDataFunc, + user_data: gpointer, + ); + pub fn g_quark_from_static_string(string: *const c_char) -> GQuark; + pub fn g_quark_from_string(string: *const c_char) -> GQuark; + pub fn g_quark_to_string(quark: GQuark) -> *const c_char; + pub fn g_quark_try_string(string: *const c_char) -> GQuark; + pub fn g_random_double() -> c_double; + pub fn g_random_double_range(begin: c_double, end: c_double) -> c_double; + pub fn g_random_int() -> u32; + pub fn g_random_int_range(begin: i32, end: i32) -> i32; + pub fn g_random_set_seed(seed: u32); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_acquire(mem_block: gpointer) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_alloc(block_size: size_t) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_alloc0(block_size: size_t) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_dup(block_size: size_t, mem_block: gconstpointer) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_get_size(mem_block: gpointer) -> size_t; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_release(mem_block: gpointer); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify); + pub fn g_realloc(mem: gpointer, n_bytes: size_t) -> gpointer; + pub fn g_realloc_n(mem: gpointer, n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_count_compare(rc: *mut c_int, val: c_int) -> gboolean; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_count_dec(rc: *mut c_int) -> gboolean; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_count_inc(rc: *mut c_int); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_count_init(rc: *mut c_int); + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_acquire(str: *mut c_char) -> *mut c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_length(str: *mut c_char) -> size_t; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_new(str: *const c_char) -> *mut c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_new_intern(str: *const c_char) -> *mut c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_new_len(str: *const c_char, len: ssize_t) -> *mut c_char; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_ref_string_release(str: *mut c_char); + pub fn g_reload_user_special_dirs_cache(); + pub fn g_return_if_fail_warning( + log_domain: *const c_char, + pretty_function: *const c_char, + expression: *const c_char, + ); + pub fn g_rmdir(filename: *const c_char) -> c_int; + pub fn g_set_application_name(application_name: *const c_char); + pub fn g_set_error( + err: *mut *mut GError, + domain: GQuark, + code: c_int, + format: *const c_char, + ... + ); + pub fn g_set_error_literal( + err: *mut *mut GError, + domain: GQuark, + code: c_int, + message: *const c_char, + ); + pub fn g_set_prgname(prgname: *const c_char); + pub fn g_set_print_handler(func: GPrintFunc) -> GPrintFunc; + pub fn g_set_printerr_handler(func: GPrintFunc) -> GPrintFunc; + pub fn g_setenv(variable: *const c_char, value: *const c_char, overwrite: gboolean) + -> gboolean; + pub fn g_shell_error_quark() -> GQuark; + pub fn g_shell_parse_argv( + command_line: *const c_char, + argcp: *mut c_int, + argvp: *mut *mut *mut c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_shell_quote(unquoted_string: *const c_char) -> *mut c_char; + pub fn g_shell_unquote(quoted_string: *const c_char, error: *mut *mut GError) -> *mut c_char; + pub fn g_slice_alloc(block_size: size_t) -> gpointer; + pub fn g_slice_alloc0(block_size: size_t) -> gpointer; + pub fn g_slice_copy(block_size: size_t, mem_block: gconstpointer) -> gpointer; + pub fn g_slice_free1(block_size: size_t, mem_block: gpointer); + pub fn g_slice_free_chain_with_offset( + block_size: size_t, + mem_chain: gpointer, + next_offset: size_t, + ); + pub fn g_slice_get_config(ckey: GSliceConfig) -> i64; + pub fn g_slice_get_config_state( + ckey: GSliceConfig, + address: i64, + n_values: *mut c_uint, + ) -> *mut i64; + pub fn g_slice_set_config(ckey: GSliceConfig, value: i64); + pub fn g_snprintf(string: *mut c_char, n: c_ulong, format: *const c_char, ...) -> c_int; + pub fn g_spaced_primes_closest(num: c_uint) -> c_uint; + pub fn g_spawn_async( + working_directory: *const c_char, + argv: *mut *mut c_char, + envp: *mut *mut c_char, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_58", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_58")))] + pub fn g_spawn_async_with_fds( + working_directory: *const c_char, + argv: *mut *mut c_char, + envp: *mut *mut c_char, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + stdin_fd: c_int, + stdout_fd: c_int, + stderr_fd: c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_spawn_async_with_pipes( + working_directory: *const c_char, + argv: *mut *mut c_char, + envp: *mut *mut c_char, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + child_pid: *mut GPid, + standard_input: *mut c_int, + standard_output: *mut c_int, + standard_error: *mut c_int, + error: *mut *mut GError, + ) -> gboolean; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_spawn_async_with_pipes_and_fds( + working_directory: *const c_char, + argv: *const *const c_char, + envp: *const *const c_char, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + stdin_fd: c_int, + stdout_fd: c_int, + stderr_fd: c_int, + source_fds: *const c_int, + target_fds: *const c_int, + n_fds: size_t, + child_pid_out: *mut GPid, + stdin_pipe_out: *mut c_int, + stdout_pipe_out: *mut c_int, + stderr_pipe_out: *mut c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_spawn_check_exit_status(wait_status: c_int, error: *mut *mut GError) -> gboolean; + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_spawn_check_wait_status(wait_status: c_int, error: *mut *mut GError) -> gboolean; + pub fn g_spawn_close_pid(pid: GPid); + pub fn g_spawn_command_line_async( + command_line: *const c_char, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_spawn_command_line_sync( + command_line: *const c_char, + standard_output: *mut *mut u8, + standard_error: *mut *mut u8, + wait_status: *mut c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_spawn_error_quark() -> GQuark; + pub fn g_spawn_exit_error_quark() -> GQuark; + pub fn g_spawn_sync( + working_directory: *const c_char, + argv: *mut *mut c_char, + envp: *mut *mut c_char, + flags: GSpawnFlags, + child_setup: GSpawnChildSetupFunc, + user_data: gpointer, + standard_output: *mut *mut u8, + standard_error: *mut *mut u8, + wait_status: *mut c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_sprintf(string: *mut c_char, format: *const c_char, ...) -> c_int; + pub fn g_stpcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char; + pub fn g_str_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean; + pub fn g_str_has_prefix(str: *const c_char, prefix: *const c_char) -> gboolean; + pub fn g_str_has_suffix(str: *const c_char, suffix: *const c_char) -> gboolean; + pub fn g_str_hash(v: gconstpointer) -> c_uint; + pub fn g_str_is_ascii(str: *const c_char) -> gboolean; + pub fn g_str_match_string( + search_term: *const c_char, + potential_hit: *const c_char, + accept_alternates: gboolean, + ) -> gboolean; + pub fn g_str_to_ascii(str: *const c_char, from_locale: *const c_char) -> *mut c_char; + pub fn g_str_tokenize_and_fold( + string: *const c_char, + translit_locale: *const c_char, + ascii_alternates: *mut *mut *mut c_char, + ) -> *mut *mut c_char; + pub fn g_strcanon( + string: *mut c_char, + valid_chars: *const c_char, + substitutor: c_char, + ) -> *mut c_char; + pub fn g_strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int; + pub fn g_strchomp(string: *mut c_char) -> *mut c_char; + pub fn g_strchug(string: *mut c_char) -> *mut c_char; + pub fn g_strcmp0(str1: *const c_char, str2: *const c_char) -> c_int; + pub fn g_strcompress(source: *const c_char) -> *mut c_char; + pub fn g_strconcat(string1: *const c_char, ...) -> *mut c_char; + pub fn g_strdelimit( + string: *mut c_char, + delimiters: *const c_char, + new_delimiter: c_char, + ) -> *mut c_char; + pub fn g_strdown(string: *mut c_char) -> *mut c_char; + pub fn g_strdup(str: *const c_char) -> *mut c_char; + pub fn g_strdup_printf(format: *const c_char, ...) -> *mut c_char; + //pub fn g_strdup_vprintf(format: *const c_char, args: /*Unimplemented*/va_list) -> *mut c_char; + pub fn g_strdupv(str_array: *mut *mut c_char) -> *mut *mut c_char; + pub fn g_strerror(errnum: c_int) -> *const c_char; + pub fn g_strescape(source: *const c_char, exceptions: *const c_char) -> *mut c_char; + pub fn g_strfreev(str_array: *mut *mut c_char); + pub fn g_strip_context(msgid: *const c_char, msgval: *const c_char) -> *const c_char; + pub fn g_strjoin(separator: *const c_char, ...) -> *mut c_char; + pub fn g_strjoinv(separator: *const c_char, str_array: *mut *mut c_char) -> *mut c_char; + pub fn g_strlcat(dest: *mut c_char, src: *const c_char, dest_size: size_t) -> size_t; + pub fn g_strlcpy(dest: *mut c_char, src: *const c_char, dest_size: size_t) -> size_t; + pub fn g_strncasecmp(s1: *const c_char, s2: *const c_char, n: c_uint) -> c_int; + pub fn g_strndup(str: *const c_char, n: size_t) -> *mut c_char; + pub fn g_strnfill(length: size_t, fill_char: c_char) -> *mut c_char; + pub fn g_strreverse(string: *mut c_char) -> *mut c_char; + pub fn g_strrstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char; + pub fn g_strrstr_len( + haystack: *const c_char, + haystack_len: ssize_t, + needle: *const c_char, + ) -> *mut c_char; + pub fn g_strsignal(signum: c_int) -> *const c_char; + pub fn g_strsplit( + string: *const c_char, + delimiter: *const c_char, + max_tokens: c_int, + ) -> *mut *mut c_char; + pub fn g_strsplit_set( + string: *const c_char, + delimiters: *const c_char, + max_tokens: c_int, + ) -> *mut *mut c_char; + pub fn g_strstr_len( + haystack: *const c_char, + haystack_len: ssize_t, + needle: *const c_char, + ) -> *mut c_char; + pub fn g_strtod(nptr: *const c_char, endptr: *mut *mut c_char) -> c_double; + pub fn g_strup(string: *mut c_char) -> *mut c_char; + pub fn g_strv_contains(strv: *const *const c_char, str: *const c_char) -> gboolean; + #[cfg(any(feature = "v2_60", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_60")))] + pub fn g_strv_equal(strv1: *const *const c_char, strv2: *const *const c_char) -> gboolean; + pub fn g_strv_get_type() -> GType; + pub fn g_strv_length(str_array: *mut *mut c_char) -> c_uint; + pub fn g_test_add_data_func( + testpath: *const c_char, + test_data: gconstpointer, + test_func: GTestDataFunc, + ); + pub fn g_test_add_data_func_full( + testpath: *const c_char, + test_data: gpointer, + test_func: GTestDataFunc, + data_free_func: GDestroyNotify, + ); + pub fn g_test_add_func(testpath: *const c_char, test_func: GTestFunc); + pub fn g_test_add_vtable( + testpath: *const c_char, + data_size: size_t, + test_data: gconstpointer, + data_setup: GTestFixtureFunc, + data_test: GTestFixtureFunc, + data_teardown: GTestFixtureFunc, + ); + pub fn g_test_assert_expected_messages_internal( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + ); + pub fn g_test_bug(bug_uri_snippet: *const c_char); + pub fn g_test_bug_base(uri_pattern: *const c_char); + pub fn g_test_build_filename( + file_type: GTestFileType, + first_path: *const c_char, + ... + ) -> *mut c_char; + pub fn g_test_create_case( + test_name: *const c_char, + data_size: size_t, + test_data: gconstpointer, + data_setup: GTestFixtureFunc, + data_test: GTestFixtureFunc, + data_teardown: GTestFixtureFunc, + ) -> *mut GTestCase; + pub fn g_test_create_suite(suite_name: *const c_char) -> *mut GTestSuite; + pub fn g_test_expect_message( + log_domain: *const c_char, + log_level: GLogLevelFlags, + pattern: *const c_char, + ); + pub fn g_test_fail(); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_test_fail_printf(format: *const c_char, ...); + pub fn g_test_failed() -> gboolean; + pub fn g_test_get_dir(file_type: GTestFileType) -> *const c_char; + pub fn g_test_get_filename( + file_type: GTestFileType, + first_path: *const c_char, + ... + ) -> *const c_char; + #[cfg(any(feature = "v2_68", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_68")))] + pub fn g_test_get_path() -> *const c_char; + pub fn g_test_get_root() -> *mut GTestSuite; + pub fn g_test_incomplete(msg: *const c_char); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_test_incomplete_printf(format: *const c_char, ...); + pub fn g_test_init(argc: *mut c_int, argv: *mut *mut *mut c_char, ...); + pub fn g_test_log_set_fatal_handler(log_func: GTestLogFatalFunc, user_data: gpointer); + pub fn g_test_log_type_name(log_type: GTestLogType) -> *const c_char; + pub fn g_test_maximized_result(maximized_quantity: c_double, format: *const c_char, ...); + pub fn g_test_message(format: *const c_char, ...); + pub fn g_test_minimized_result(minimized_quantity: c_double, format: *const c_char, ...); + pub fn g_test_queue_destroy(destroy_func: GDestroyNotify, destroy_data: gpointer); + pub fn g_test_queue_free(gfree_pointer: gpointer); + pub fn g_test_rand_double() -> c_double; + pub fn g_test_rand_double_range(range_start: c_double, range_end: c_double) -> c_double; + pub fn g_test_rand_int() -> i32; + pub fn g_test_rand_int_range(begin: i32, end: i32) -> i32; + pub fn g_test_run() -> c_int; + pub fn g_test_run_suite(suite: *mut GTestSuite) -> c_int; + pub fn g_test_set_nonfatal_assertions(); + pub fn g_test_skip(msg: *const c_char); + #[cfg(any(feature = "v2_70", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_70")))] + pub fn g_test_skip_printf(format: *const c_char, ...); + pub fn g_test_subprocess() -> gboolean; + #[cfg(any(feature = "v2_62", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_62")))] + pub fn g_test_summary(summary: *const c_char); + pub fn g_test_timer_elapsed() -> c_double; + pub fn g_test_timer_last() -> c_double; + pub fn g_test_timer_start(); + pub fn g_test_trap_assertions( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + assertion_flags: u64, + pattern: *const c_char, + ); + pub fn g_test_trap_fork(usec_timeout: u64, test_trap_flags: GTestTrapFlags) -> gboolean; + pub fn g_test_trap_has_passed() -> gboolean; + pub fn g_test_trap_reached_timeout() -> gboolean; + pub fn g_test_trap_subprocess( + test_path: *const c_char, + usec_timeout: u64, + test_flags: GTestSubprocessFlags, + ); + pub fn g_timeout_add(interval: c_uint, function: GSourceFunc, data: gpointer) -> c_uint; + pub fn g_timeout_add_full( + priority: c_int, + interval: c_uint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + #[cfg(any(feature = "v2_74", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_74")))] + pub fn g_timeout_add_once( + interval: c_uint, + function: GSourceOnceFunc, + data: gpointer, + ) -> c_uint; + pub fn g_timeout_add_seconds(interval: c_uint, function: GSourceFunc, data: gpointer) + -> c_uint; + pub fn g_timeout_add_seconds_full( + priority: c_int, + interval: c_uint, + function: GSourceFunc, + data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + pub fn g_timeout_source_new(interval: c_uint) -> *mut GSource; + pub fn g_timeout_source_new_seconds(interval: c_uint) -> *mut GSource; + pub fn g_try_malloc(n_bytes: size_t) -> gpointer; + pub fn g_try_malloc0(n_bytes: size_t) -> gpointer; + pub fn g_try_malloc0_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + pub fn g_try_malloc_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + pub fn g_try_realloc(mem: gpointer, n_bytes: size_t) -> gpointer; + pub fn g_try_realloc_n(mem: gpointer, n_blocks: size_t, n_block_bytes: size_t) -> gpointer; + pub fn g_ucs4_to_utf16( + str: *const u32, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut u16; + pub fn g_ucs4_to_utf8( + str: *const u32, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_unichar_break_type(c: u32) -> GUnicodeBreakType; + pub fn g_unichar_combining_class(uc: u32) -> c_int; + pub fn g_unichar_compose(a: u32, b: u32, ch: *mut u32) -> gboolean; + pub fn g_unichar_decompose(ch: u32, a: *mut u32, b: *mut u32) -> gboolean; + pub fn g_unichar_digit_value(c: u32) -> c_int; + pub fn g_unichar_fully_decompose( + ch: u32, + compat: gboolean, + result: *mut u32, + result_len: size_t, + ) -> size_t; + pub fn g_unichar_get_mirror_char(ch: u32, mirrored_ch: *mut u32) -> gboolean; + pub fn g_unichar_get_script(ch: u32) -> GUnicodeScript; + pub fn g_unichar_isalnum(c: u32) -> gboolean; + pub fn g_unichar_isalpha(c: u32) -> gboolean; + pub fn g_unichar_iscntrl(c: u32) -> gboolean; + pub fn g_unichar_isdefined(c: u32) -> gboolean; + pub fn g_unichar_isdigit(c: u32) -> gboolean; + pub fn g_unichar_isgraph(c: u32) -> gboolean; + pub fn g_unichar_islower(c: u32) -> gboolean; + pub fn g_unichar_ismark(c: u32) -> gboolean; + pub fn g_unichar_isprint(c: u32) -> gboolean; + pub fn g_unichar_ispunct(c: u32) -> gboolean; + pub fn g_unichar_isspace(c: u32) -> gboolean; + pub fn g_unichar_istitle(c: u32) -> gboolean; + pub fn g_unichar_isupper(c: u32) -> gboolean; + pub fn g_unichar_iswide(c: u32) -> gboolean; + pub fn g_unichar_iswide_cjk(c: u32) -> gboolean; + pub fn g_unichar_isxdigit(c: u32) -> gboolean; + pub fn g_unichar_iszerowidth(c: u32) -> gboolean; + pub fn g_unichar_to_utf8(c: u32, outbuf: *mut c_char) -> c_int; + pub fn g_unichar_tolower(c: u32) -> u32; + pub fn g_unichar_totitle(c: u32) -> u32; + pub fn g_unichar_toupper(c: u32) -> u32; + pub fn g_unichar_type(c: u32) -> GUnicodeType; + pub fn g_unichar_validate(ch: u32) -> gboolean; + pub fn g_unichar_xdigit_value(c: u32) -> c_int; + pub fn g_unicode_canonical_decomposition(ch: u32, result_len: *mut size_t) -> *mut u32; + pub fn g_unicode_canonical_ordering(string: *mut u32, len: size_t); + pub fn g_unicode_script_from_iso15924(iso15924: u32) -> GUnicodeScript; + pub fn g_unicode_script_to_iso15924(script: GUnicodeScript) -> u32; + pub fn g_unix_error_quark() -> GQuark; + pub fn g_unix_fd_add( + fd: c_int, + condition: GIOCondition, + function: GUnixFDSourceFunc, + user_data: gpointer, + ) -> c_uint; + pub fn g_unix_fd_add_full( + priority: c_int, + fd: c_int, + condition: GIOCondition, + function: GUnixFDSourceFunc, + user_data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + pub fn g_unix_fd_source_new(fd: c_int, condition: GIOCondition) -> *mut GSource; + #[cfg(any(feature = "v2_64", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_64")))] + #[cfg(any(unix, feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(unix)))] + pub fn g_unix_get_passwd_entry( + user_name: *const c_char, + error: *mut *mut GError, + ) -> *mut passwd; + pub fn g_unix_open_pipe( + fds: *mut [c_int; 2], + flags: c_int, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_unix_set_fd_nonblocking( + fd: c_int, + nonblock: gboolean, + error: *mut *mut GError, + ) -> gboolean; + pub fn g_unix_signal_add(signum: c_int, handler: GSourceFunc, user_data: gpointer) -> c_uint; + pub fn g_unix_signal_add_full( + priority: c_int, + signum: c_int, + handler: GSourceFunc, + user_data: gpointer, + notify: GDestroyNotify, + ) -> c_uint; + pub fn g_unix_signal_source_new(signum: c_int) -> *mut GSource; + pub fn g_unlink(filename: *const c_char) -> c_int; + pub fn g_unsetenv(variable: *const c_char); + pub fn g_usleep(microseconds: c_ulong); + pub fn g_utf16_to_ucs4( + str: *const u16, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut u32; + pub fn g_utf16_to_utf8( + str: *const u16, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut c_char; + pub fn g_utf8_casefold(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_collate(str1: *const c_char, str2: *const c_char) -> c_int; + pub fn g_utf8_collate_key(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_collate_key_for_filename(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_find_next_char(p: *const c_char, end: *const c_char) -> *mut c_char; + pub fn g_utf8_find_prev_char(str: *const c_char, p: *const c_char) -> *mut c_char; + pub fn g_utf8_get_char(p: *const c_char) -> u32; + pub fn g_utf8_get_char_validated(p: *const c_char, max_len: ssize_t) -> u32; + pub fn g_utf8_make_valid(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_normalize(str: *const c_char, len: ssize_t, mode: GNormalizeMode) -> *mut c_char; + pub fn g_utf8_offset_to_pointer(str: *const c_char, offset: c_long) -> *mut c_char; + pub fn g_utf8_pointer_to_offset(str: *const c_char, pos: *const c_char) -> c_long; + pub fn g_utf8_prev_char(p: *const c_char) -> *mut c_char; + pub fn g_utf8_strchr(p: *const c_char, len: ssize_t, c: u32) -> *mut c_char; + pub fn g_utf8_strdown(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_strlen(p: *const c_char, max: ssize_t) -> c_long; + pub fn g_utf8_strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char; + pub fn g_utf8_strrchr(p: *const c_char, len: ssize_t, c: u32) -> *mut c_char; + pub fn g_utf8_strreverse(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_strup(str: *const c_char, len: ssize_t) -> *mut c_char; + pub fn g_utf8_substring(str: *const c_char, start_pos: c_long, end_pos: c_long) -> *mut c_char; + pub fn g_utf8_to_ucs4( + str: *const c_char, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut u32; + pub fn g_utf8_to_ucs4_fast( + str: *const c_char, + len: c_long, + items_written: *mut c_long, + ) -> *mut u32; + pub fn g_utf8_to_utf16( + str: *const c_char, + len: c_long, + items_read: *mut c_long, + items_written: *mut c_long, + error: *mut *mut GError, + ) -> *mut u16; + pub fn g_utf8_validate(str: *const u8, max_len: ssize_t, end: *mut *const c_char) -> gboolean; + #[cfg(any(feature = "v2_60", feature = "dox"))] + #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_60")))] + pub fn g_utf8_validate_len( + str: *const u8, + max_len: size_t, + end: *mut *const c_char, + ) -> gboolean; + pub fn g_uuid_string_is_valid(str: *const c_char) -> gboolean; + pub fn g_uuid_string_random() -> *mut c_char; + pub fn g_variant_get_gtype() -> GType; + //pub fn g_vasprintf(string: *mut *mut c_char, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; + //pub fn g_vfprintf(file: *mut FILE, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; + //pub fn g_vprintf(format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; + //pub fn g_vsnprintf(string: *mut c_char, n: c_ulong, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; + //pub fn g_vsprintf(string: *mut c_char, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; + pub fn g_warn_message( + domain: *const c_char, + file: *const c_char, + line: c_int, + func: *const c_char, + warnexpr: *const c_char, + ); + +} diff --git a/src/manual.rs b/src/manual.rs new file mode 100644 index 0000000..0c86418 --- /dev/null +++ b/src/manual.rs @@ -0,0 +1,87 @@ +// Take a look at the license at the top of the repository in the LICENSE file. + +#[cfg(unix)] +pub use libc::passwd; +#[allow(unused_imports)] +use libc::{c_char, c_int, c_ushort, c_void}; + +#[cfg(all(not(unix), feature = "dox"))] +#[repr(C)] +pub struct passwd { + pw_name: *mut c_char, + pw_passwd: *mut c_char, + pw_uid: u32, + pw_gid: u32, + pw_gecos: *mut c_char, + pw_dir: *mut c_char, + pw_shell: *mut c_char, +} + +#[cfg(windows)] +pub type GPid = *mut c_void; + +#[cfg(not(windows))] +pub type GPid = c_int; + +#[repr(C)] +#[derive(Copy, Clone)] +#[cfg(all(windows, target_arch = "x86_64"))] +pub struct GPollFD { + pub fd: i64, + pub events: c_ushort, + pub revents: c_ushort, +} + +#[repr(C)] +#[derive(Copy, Clone)] +#[cfg(not(all(windows, target_arch = "x86_64")))] +pub struct GPollFD { + pub fd: c_int, + pub events: c_ushort, + pub revents: c_ushort, +} + +#[cfg(target_family = "windows")] +pub use self::win32::*; + +#[cfg(target_family = "windows")] +mod win32 { + use libc::c_char; + + use crate::gpointer; + + extern "C" { + pub fn g_win32_get_package_installation_directory_of_module( + hmodule: gpointer, + ) -> *mut c_char; + } +} + +// These are all non-NUL terminated strings in C +pub const G_VARIANT_TYPE_BOOLEAN: &str = "b"; +pub const G_VARIANT_TYPE_BYTE: &str = "y"; +pub const G_VARIANT_TYPE_INT16: &str = "n"; +pub const G_VARIANT_TYPE_UINT16: &str = "q"; +pub const G_VARIANT_TYPE_INT32: &str = "i"; +pub const G_VARIANT_TYPE_UINT32: &str = "u"; +pub const G_VARIANT_TYPE_INT64: &str = "x"; +pub const G_VARIANT_TYPE_UINT64: &str = "t"; +pub const G_VARIANT_TYPE_DOUBLE: &str = "d"; +pub const G_VARIANT_TYPE_STRING: &str = "s"; +pub const G_VARIANT_TYPE_OBJECT_PATH: &str = "o"; +pub const G_VARIANT_TYPE_SIGNATURE: &str = "g"; +pub const G_VARIANT_TYPE_VARIANT: &str = "v"; +pub const G_VARIANT_TYPE_HANDLE: &str = "h"; +pub const G_VARIANT_TYPE_UNIT: &str = "()"; +pub const G_VARIANT_TYPE_ANY: &str = "*"; +pub const G_VARIANT_TYPE_BASIC: &str = "?"; +pub const G_VARIANT_TYPE_MAYBE: &str = "m*"; +pub const G_VARIANT_TYPE_ARRAY: &str = "a*"; +pub const G_VARIANT_TYPE_TUPLE: &str = "r"; +pub const G_VARIANT_TYPE_DICT_ENTRY: &str = "{?*}"; +pub const G_VARIANT_TYPE_DICTIONARY: &str = "a{?*}"; +pub const G_VARIANT_TYPE_STRING_ARRAY: &str = "as"; +pub const G_VARIANT_TYPE_OBJECT_PATH_ARRAY: &str = "ao"; +pub const G_VARIANT_TYPE_BYTE_STRING: &str = "ay"; +pub const G_VARIANT_TYPE_BYTE_STRING_ARRAY: &str = "ayy"; +pub const G_VARIANT_TYPE_VARDICT: &str = "a{sv}"; diff --git a/tests/abi.rs b/tests/abi.rs new file mode 100644 index 0000000..9511b56 --- /dev/null +++ b/tests/abi.rs @@ -0,0 +1,1811 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from gir-files (https://github.com/gtk-rs/gir-files) +// DO NOT EDIT + +#![cfg(target_os = "linux")] + +use glib_sys::*; +use std::env; +use std::error::Error; +use std::ffi::OsString; +use std::mem::{align_of, size_of}; +use std::path::Path; +use std::process::Command; +use std::str; +use tempfile::Builder; + +static PACKAGES: &[&str] = &["glib-2.0"]; + +#[derive(Clone, Debug)] +struct Compiler { + pub args: Vec, +} + +impl Compiler { + pub fn new() -> Result> { + let mut args = get_var("CC", "cc")?; + args.push("-Wno-deprecated-declarations".to_owned()); + // For _Generic + args.push("-std=c11".to_owned()); + // For %z support in printf when using MinGW. + args.push("-D__USE_MINGW_ANSI_STDIO".to_owned()); + args.extend(get_var("CFLAGS", "")?); + args.extend(get_var("CPPFLAGS", "")?); + args.extend(pkg_config_cflags(PACKAGES)?); + Ok(Self { args }) + } + + pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box> { + let mut cmd = self.to_command(); + cmd.arg(src); + cmd.arg("-o"); + cmd.arg(out); + let status = cmd.spawn()?.wait()?; + if !status.success() { + return Err(format!("compilation command {cmd:?} failed, {status}").into()); + } + Ok(()) + } + + fn to_command(&self) -> Command { + let mut cmd = Command::new(&self.args[0]); + cmd.args(&self.args[1..]); + cmd + } +} + +fn get_var(name: &str, default: &str) -> Result, Box> { + match env::var(name) { + Ok(value) => Ok(shell_words::split(&value)?), + Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?), + Err(err) => Err(format!("{name} {err}").into()), + } +} + +fn pkg_config_cflags(packages: &[&str]) -> Result, Box> { + if packages.is_empty() { + return Ok(Vec::new()); + } + let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config")); + let mut cmd = Command::new(pkg_config); + cmd.arg("--cflags"); + cmd.args(packages); + let out = cmd.output()?; + if !out.status.success() { + return Err(format!("command {cmd:?} returned {}", out.status).into()); + } + let stdout = str::from_utf8(&out.stdout)?; + Ok(shell_words::split(stdout.trim())?) +} + +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +struct Layout { + size: usize, + alignment: usize, +} + +#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] +struct Results { + /// Number of successfully completed tests. + passed: usize, + /// Total number of failed tests (including those that failed to compile). + failed: usize, +} + +impl Results { + fn record_passed(&mut self) { + self.passed += 1; + } + fn record_failed(&mut self) { + self.failed += 1; + } + fn summary(&self) -> String { + format!("{} passed; {} failed", self.passed, self.failed) + } + fn expect_total_success(&self) { + if self.failed == 0 { + println!("OK: {}", self.summary()); + } else { + panic!("FAILED: {}", self.summary()); + }; + } +} + +#[test] +fn cross_validate_constants_with_c() { + let mut c_constants: Vec<(String, String)> = Vec::new(); + + for l in get_c_output("constant").unwrap().lines() { + let (name, value) = l.split_once(';').expect("Missing ';' separator"); + c_constants.push((name.to_owned(), value.to_owned())); + } + + let mut results = Results::default(); + + for ((rust_name, rust_value), (c_name, c_value)) in + RUST_CONSTANTS.iter().zip(c_constants.iter()) + { + if rust_name != c_name { + results.record_failed(); + eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); + continue; + } + + if rust_value != c_value { + results.record_failed(); + eprintln!( + "Constant value mismatch for {rust_name}\nRust: {rust_value:?}\nC: {c_value:?}", + ); + continue; + } + + results.record_passed(); + } + + results.expect_total_success(); +} + +#[test] +fn cross_validate_layout_with_c() { + let mut c_layouts = Vec::new(); + + for l in get_c_output("layout").unwrap().lines() { + let (name, value) = l.split_once(';').expect("Missing first ';' separator"); + let (size, alignment) = value.split_once(';').expect("Missing second ';' separator"); + let size = size.parse().expect("Failed to parse size"); + let alignment = alignment.parse().expect("Failed to parse alignment"); + c_layouts.push((name.to_owned(), Layout { size, alignment })); + } + + let mut results = Results::default(); + + for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter()) + { + if rust_name != c_name { + results.record_failed(); + eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); + continue; + } + + if rust_layout != c_layout { + results.record_failed(); + eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",); + continue; + } + + results.record_passed(); + } + + results.expect_total_success(); +} + +fn get_c_output(name: &str) -> Result> { + let tmpdir = Builder::new().prefix("abi").tempdir()?; + let exe = tmpdir.path().join(name); + let c_file = Path::new("tests").join(name).with_extension("c"); + + let cc = Compiler::new().expect("configured compiler"); + cc.compile(&c_file, &exe)?; + + let mut abi_cmd = Command::new(exe); + let output = abi_cmd.output()?; + if !output.status.success() { + return Err(format!("command {abi_cmd:?} failed, {output:?}").into()); + } + + Ok(String::from_utf8(output.stdout)?) +} + +const RUST_LAYOUTS: &[(&str, Layout)] = &[ + ( + "GArray", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GAsciiType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GBookmarkFileError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GByteArray", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GChecksumType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GCond", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GConvertError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDate", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDateDMY", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDateDay", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDateMonth", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDateWeekday", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDateYear", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GDebugKey", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GErrorType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GFileError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GFileSetContentsFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GFileTest", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GFormatSizeFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GHashTableIter", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GHook", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GHookFlagMask", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GHookList", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOChannelError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOCondition", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOFuncs", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GIOStatus", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GKeyFileError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GKeyFileFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GList", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GLogField", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GLogLevelFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GLogWriterOutput", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMainContextFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMarkupCollectType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMarkupError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMarkupParseFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMarkupParser", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMemVTable", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GMutex", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GNode", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GNormalizeMode", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GNumberParserError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOnce", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOnceStatus", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOptionArg", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOptionEntry", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOptionError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GOptionFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GPathBuf", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GPid", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GPollFD", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GPrivate", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GPtrArray", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GQuark", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GQueue", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRWLock", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRecMutex", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRefString", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRegexCompileFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRegexError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GRegexMatchFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSList", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GScanner", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSeekType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GShellError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSliceConfig", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSource", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSourceCallbackFuncs", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSourceFuncs", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSpawnError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GSpawnFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GString", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GStrv", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestConfig", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestFileType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestLogBuffer", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestLogType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestResult", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestSubprocessFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTestTrapFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GThreadError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GThreadPool", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTime", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTimeSpan", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTimeType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTimeVal", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTokenType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTokenValue", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTrashStack", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTraverseFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GTraverseType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUnicodeBreakType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUnicodeScript", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUnicodeType", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUriError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUriFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUriHideFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUriParamsFlags", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUriParamsIter", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GUserDirectory", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GVariantBuilder", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GVariantClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GVariantDict", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GVariantIter", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "GVariantParseError", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), +]; + +const RUST_CONSTANTS: &[(&str, &str)] = &[ + ("GLIB_SYSDEF_AF_INET", "2"), + ("GLIB_SYSDEF_AF_INET6", "10"), + ("GLIB_SYSDEF_AF_UNIX", "1"), + ("GLIB_SYSDEF_MSG_DONTROUTE", "4"), + ("GLIB_SYSDEF_MSG_OOB", "1"), + ("GLIB_SYSDEF_MSG_PEEK", "2"), + ("(guint) G_ASCII_ALNUM", "1"), + ("(guint) G_ASCII_ALPHA", "2"), + ("(guint) G_ASCII_CNTRL", "4"), + ("(guint) G_ASCII_DIGIT", "8"), + ("G_ASCII_DTOSTR_BUF_SIZE", "39"), + ("(guint) G_ASCII_GRAPH", "16"), + ("(guint) G_ASCII_LOWER", "32"), + ("(guint) G_ASCII_PRINT", "64"), + ("(guint) G_ASCII_PUNCT", "128"), + ("(guint) G_ASCII_SPACE", "256"), + ("(guint) G_ASCII_UPPER", "512"), + ("(guint) G_ASCII_XDIGIT", "1024"), + ("G_BIG_ENDIAN", "4321"), + ("(gint) G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED", "2"), + ("(gint) G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND", "7"), + ("(gint) G_BOOKMARK_FILE_ERROR_INVALID_URI", "0"), + ("(gint) G_BOOKMARK_FILE_ERROR_INVALID_VALUE", "1"), + ("(gint) G_BOOKMARK_FILE_ERROR_READ", "4"), + ("(gint) G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING", "5"), + ("(gint) G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND", "3"), + ("(gint) G_BOOKMARK_FILE_ERROR_WRITE", "6"), + ("(gint) G_CHECKSUM_MD5", "0"), + ("(gint) G_CHECKSUM_SHA1", "1"), + ("(gint) G_CHECKSUM_SHA256", "2"), + ("(gint) G_CHECKSUM_SHA384", "4"), + ("(gint) G_CHECKSUM_SHA512", "3"), + ("(gint) G_CONVERT_ERROR_BAD_URI", "4"), + ("(gint) G_CONVERT_ERROR_EMBEDDED_NUL", "7"), + ("(gint) G_CONVERT_ERROR_FAILED", "2"), + ("(gint) G_CONVERT_ERROR_ILLEGAL_SEQUENCE", "1"), + ("(gint) G_CONVERT_ERROR_NOT_ABSOLUTE_PATH", "5"), + ("(gint) G_CONVERT_ERROR_NO_CONVERSION", "0"), + ("(gint) G_CONVERT_ERROR_NO_MEMORY", "6"), + ("(gint) G_CONVERT_ERROR_PARTIAL_INPUT", "3"), + ("G_CSET_A_2_Z", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), + ("G_CSET_DIGITS", "0123456789"), + ("G_CSET_a_2_z", "abcdefghijklmnopqrstuvwxyz"), + ("G_DATALIST_FLAGS_MASK", "3"), + ("(gint) G_DATE_APRIL", "4"), + ("(gint) G_DATE_AUGUST", "8"), + ("G_DATE_BAD_DAY", "0"), + ("G_DATE_BAD_JULIAN", "0"), + ("(gint) G_DATE_BAD_MONTH", "0"), + ("(gint) G_DATE_BAD_WEEKDAY", "0"), + ("G_DATE_BAD_YEAR", "0"), + ("(gint) G_DATE_DAY", "0"), + ("(gint) G_DATE_DECEMBER", "12"), + ("(gint) G_DATE_FEBRUARY", "2"), + ("(gint) G_DATE_FRIDAY", "5"), + ("(gint) G_DATE_JANUARY", "1"), + ("(gint) G_DATE_JULY", "7"), + ("(gint) G_DATE_JUNE", "6"), + ("(gint) G_DATE_MARCH", "3"), + ("(gint) G_DATE_MAY", "5"), + ("(gint) G_DATE_MONDAY", "1"), + ("(gint) G_DATE_MONTH", "1"), + ("(gint) G_DATE_NOVEMBER", "11"), + ("(gint) G_DATE_OCTOBER", "10"), + ("(gint) G_DATE_SATURDAY", "6"), + ("(gint) G_DATE_SEPTEMBER", "9"), + ("(gint) G_DATE_SUNDAY", "7"), + ("(gint) G_DATE_THURSDAY", "4"), + ("(gint) G_DATE_TUESDAY", "2"), + ("(gint) G_DATE_WEDNESDAY", "3"), + ("(gint) G_DATE_YEAR", "2"), + ("G_E", "2.718282"), + ("(gint) G_ERR_DIGIT_RADIX", "5"), + ("(gint) G_ERR_FLOAT_MALFORMED", "7"), + ("(gint) G_ERR_FLOAT_RADIX", "6"), + ("(gint) G_ERR_NON_DIGIT_IN_CONST", "4"), + ("(gint) G_ERR_UNEXP_EOF", "1"), + ("(gint) G_ERR_UNEXP_EOF_IN_COMMENT", "3"), + ("(gint) G_ERR_UNEXP_EOF_IN_STRING", "2"), + ("(gint) G_ERR_UNKNOWN", "0"), + ("(gint) G_FILE_ERROR_ACCES", "2"), + ("(gint) G_FILE_ERROR_AGAIN", "19"), + ("(gint) G_FILE_ERROR_BADF", "16"), + ("(gint) G_FILE_ERROR_EXIST", "0"), + ("(gint) G_FILE_ERROR_FAILED", "24"), + ("(gint) G_FILE_ERROR_FAULT", "10"), + ("(gint) G_FILE_ERROR_INTR", "20"), + ("(gint) G_FILE_ERROR_INVAL", "17"), + ("(gint) G_FILE_ERROR_IO", "21"), + ("(gint) G_FILE_ERROR_ISDIR", "1"), + ("(gint) G_FILE_ERROR_LOOP", "11"), + ("(gint) G_FILE_ERROR_MFILE", "14"), + ("(gint) G_FILE_ERROR_NAMETOOLONG", "3"), + ("(gint) G_FILE_ERROR_NFILE", "15"), + ("(gint) G_FILE_ERROR_NODEV", "7"), + ("(gint) G_FILE_ERROR_NOENT", "4"), + ("(gint) G_FILE_ERROR_NOMEM", "13"), + ("(gint) G_FILE_ERROR_NOSPC", "12"), + ("(gint) G_FILE_ERROR_NOSYS", "23"), + ("(gint) G_FILE_ERROR_NOTDIR", "5"), + ("(gint) G_FILE_ERROR_NXIO", "6"), + ("(gint) G_FILE_ERROR_PERM", "22"), + ("(gint) G_FILE_ERROR_PIPE", "18"), + ("(gint) G_FILE_ERROR_ROFS", "8"), + ("(gint) G_FILE_ERROR_TXTBSY", "9"), + ("(guint) G_FILE_SET_CONTENTS_CONSISTENT", "1"), + ("(guint) G_FILE_SET_CONTENTS_DURABLE", "2"), + ("(guint) G_FILE_SET_CONTENTS_NONE", "0"), + ("(guint) G_FILE_SET_CONTENTS_ONLY_EXISTING", "4"), + ("(guint) G_FILE_TEST_EXISTS", "16"), + ("(guint) G_FILE_TEST_IS_DIR", "4"), + ("(guint) G_FILE_TEST_IS_EXECUTABLE", "8"), + ("(guint) G_FILE_TEST_IS_REGULAR", "1"), + ("(guint) G_FILE_TEST_IS_SYMLINK", "2"), + ("(guint) G_FORMAT_SIZE_BITS", "4"), + ("(guint) G_FORMAT_SIZE_DEFAULT", "0"), + ("(guint) G_FORMAT_SIZE_IEC_UNITS", "2"), + ("(guint) G_FORMAT_SIZE_LONG_FORMAT", "1"), + ("(guint) G_FORMAT_SIZE_ONLY_UNIT", "16"), + ("(guint) G_FORMAT_SIZE_ONLY_VALUE", "8"), + ("(guint) G_HOOK_FLAG_ACTIVE", "1"), + ("(guint) G_HOOK_FLAG_IN_CALL", "2"), + ("(guint) G_HOOK_FLAG_MASK", "15"), + ("G_HOOK_FLAG_USER_SHIFT", "4"), + ("G_IEEE754_DOUBLE_BIAS", "1023"), + ("G_IEEE754_FLOAT_BIAS", "127"), + ("(gint) G_IN_ORDER", "0"), + ("(gint) G_IO_CHANNEL_ERROR_FAILED", "8"), + ("(gint) G_IO_CHANNEL_ERROR_FBIG", "0"), + ("(gint) G_IO_CHANNEL_ERROR_INVAL", "1"), + ("(gint) G_IO_CHANNEL_ERROR_IO", "2"), + ("(gint) G_IO_CHANNEL_ERROR_ISDIR", "3"), + ("(gint) G_IO_CHANNEL_ERROR_NOSPC", "4"), + ("(gint) G_IO_CHANNEL_ERROR_NXIO", "5"), + ("(gint) G_IO_CHANNEL_ERROR_OVERFLOW", "6"), + ("(gint) G_IO_CHANNEL_ERROR_PIPE", "7"), + ("(guint) G_IO_ERR", "8"), + ("(gint) G_IO_ERROR_AGAIN", "1"), + ("(gint) G_IO_ERROR_INVAL", "2"), + ("(gint) G_IO_ERROR_NONE", "0"), + ("(gint) G_IO_ERROR_UNKNOWN", "3"), + ("(guint) G_IO_FLAG_APPEND", "1"), + ("(guint) G_IO_FLAG_GET_MASK", "31"), + ("(guint) G_IO_FLAG_IS_READABLE", "4"), + ("(guint) G_IO_FLAG_IS_SEEKABLE", "16"), + ("(guint) G_IO_FLAG_IS_WRITABLE", "8"), + ("(guint) G_IO_FLAG_IS_WRITEABLE", "8"), + ("(guint) G_IO_FLAG_MASK", "31"), + ("(guint) G_IO_FLAG_NONBLOCK", "2"), + ("(guint) G_IO_FLAG_NONE", "0"), + ("(guint) G_IO_FLAG_SET_MASK", "3"), + ("(guint) G_IO_HUP", "16"), + ("(guint) G_IO_IN", "1"), + ("(guint) G_IO_NVAL", "32"), + ("(guint) G_IO_OUT", "4"), + ("(guint) G_IO_PRI", "2"), + ("(gint) G_IO_STATUS_AGAIN", "3"), + ("(gint) G_IO_STATUS_EOF", "2"), + ("(gint) G_IO_STATUS_ERROR", "0"), + ("(gint) G_IO_STATUS_NORMAL", "1"), + ("G_KEY_FILE_DESKTOP_GROUP", "Desktop Entry"), + ("G_KEY_FILE_DESKTOP_KEY_ACTIONS", "Actions"), + ("G_KEY_FILE_DESKTOP_KEY_CATEGORIES", "Categories"), + ("G_KEY_FILE_DESKTOP_KEY_COMMENT", "Comment"), + ("G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE", "DBusActivatable"), + ("G_KEY_FILE_DESKTOP_KEY_EXEC", "Exec"), + ("G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME", "GenericName"), + ("G_KEY_FILE_DESKTOP_KEY_HIDDEN", "Hidden"), + ("G_KEY_FILE_DESKTOP_KEY_ICON", "Icon"), + ("G_KEY_FILE_DESKTOP_KEY_MIME_TYPE", "MimeType"), + ("G_KEY_FILE_DESKTOP_KEY_NAME", "Name"), + ("G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN", "NotShowIn"), + ("G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY", "NoDisplay"), + ("G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN", "OnlyShowIn"), + ("G_KEY_FILE_DESKTOP_KEY_PATH", "Path"), + ("G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY", "StartupNotify"), + ("G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS", "StartupWMClass"), + ("G_KEY_FILE_DESKTOP_KEY_TERMINAL", "Terminal"), + ("G_KEY_FILE_DESKTOP_KEY_TRY_EXEC", "TryExec"), + ("G_KEY_FILE_DESKTOP_KEY_TYPE", "Type"), + ("G_KEY_FILE_DESKTOP_KEY_URL", "URL"), + ("G_KEY_FILE_DESKTOP_KEY_VERSION", "Version"), + ("G_KEY_FILE_DESKTOP_TYPE_APPLICATION", "Application"), + ("G_KEY_FILE_DESKTOP_TYPE_DIRECTORY", "Directory"), + ("G_KEY_FILE_DESKTOP_TYPE_LINK", "Link"), + ("(gint) G_KEY_FILE_ERROR_GROUP_NOT_FOUND", "4"), + ("(gint) G_KEY_FILE_ERROR_INVALID_VALUE", "5"), + ("(gint) G_KEY_FILE_ERROR_KEY_NOT_FOUND", "3"), + ("(gint) G_KEY_FILE_ERROR_NOT_FOUND", "2"), + ("(gint) G_KEY_FILE_ERROR_PARSE", "1"), + ("(gint) G_KEY_FILE_ERROR_UNKNOWN_ENCODING", "0"), + ("(guint) G_KEY_FILE_KEEP_COMMENTS", "1"), + ("(guint) G_KEY_FILE_KEEP_TRANSLATIONS", "2"), + ("(guint) G_KEY_FILE_NONE", "0"), + ("(gint) G_LEVEL_ORDER", "3"), + ("G_LITTLE_ENDIAN", "1234"), + ("G_LN10", "2.302585"), + ("G_LN2", "0.693147"), + ("G_LOG_2_BASE_10", "0.301030"), + ("G_LOG_FATAL_MASK", "5"), + ("(guint) G_LOG_FLAG_FATAL", "2"), + ("(guint) G_LOG_FLAG_RECURSION", "1"), + ("(guint) G_LOG_LEVEL_CRITICAL", "8"), + ("(guint) G_LOG_LEVEL_DEBUG", "128"), + ("(guint) G_LOG_LEVEL_ERROR", "4"), + ("(guint) G_LOG_LEVEL_INFO", "64"), + ("(guint) G_LOG_LEVEL_MASK", "4294967292"), + ("(guint) G_LOG_LEVEL_MESSAGE", "32"), + ("G_LOG_LEVEL_USER_SHIFT", "8"), + ("(guint) G_LOG_LEVEL_WARNING", "16"), + ("(gint) G_LOG_WRITER_HANDLED", "1"), + ("(gint) G_LOG_WRITER_UNHANDLED", "0"), + ("(guint) G_MAIN_CONTEXT_FLAGS_NONE", "0"), + ("(guint) G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING", "1"), + ("(guint) G_MARKUP_COLLECT_BOOLEAN", "3"), + ("(guint) G_MARKUP_COLLECT_INVALID", "0"), + ("(guint) G_MARKUP_COLLECT_OPTIONAL", "65536"), + ("(guint) G_MARKUP_COLLECT_STRDUP", "2"), + ("(guint) G_MARKUP_COLLECT_STRING", "1"), + ("(guint) G_MARKUP_COLLECT_TRISTATE", "4"), + ("(guint) G_MARKUP_DEFAULT_FLAGS", "0"), + ("(guint) G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG", "1"), + ("(gint) G_MARKUP_ERROR_BAD_UTF8", "0"), + ("(gint) G_MARKUP_ERROR_EMPTY", "1"), + ("(gint) G_MARKUP_ERROR_INVALID_CONTENT", "5"), + ("(gint) G_MARKUP_ERROR_MISSING_ATTRIBUTE", "6"), + ("(gint) G_MARKUP_ERROR_PARSE", "2"), + ("(gint) G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE", "4"), + ("(gint) G_MARKUP_ERROR_UNKNOWN_ELEMENT", "3"), + ("(guint) G_MARKUP_IGNORE_QUALIFIED", "8"), + ("(guint) G_MARKUP_PREFIX_ERROR_POSITION", "4"), + ("(guint) G_MARKUP_TREAT_CDATA_AS_TEXT", "2"), + ("(gint) G_NORMALIZE_ALL", "2"), + ("(gint) G_NORMALIZE_ALL_COMPOSE", "3"), + ("(gint) G_NORMALIZE_DEFAULT", "0"), + ("(gint) G_NORMALIZE_DEFAULT_COMPOSE", "1"), + ("(gint) G_NORMALIZE_NFC", "1"), + ("(gint) G_NORMALIZE_NFD", "0"), + ("(gint) G_NORMALIZE_NFKC", "3"), + ("(gint) G_NORMALIZE_NFKD", "2"), + ("(gint) G_NUMBER_PARSER_ERROR_INVALID", "0"), + ("(gint) G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS", "1"), + ("(gint) G_ONCE_STATUS_NOTCALLED", "0"), + ("(gint) G_ONCE_STATUS_PROGRESS", "1"), + ("(gint) G_ONCE_STATUS_READY", "2"), + ("(gint) G_OPTION_ARG_CALLBACK", "3"), + ("(gint) G_OPTION_ARG_DOUBLE", "7"), + ("(gint) G_OPTION_ARG_FILENAME", "4"), + ("(gint) G_OPTION_ARG_FILENAME_ARRAY", "6"), + ("(gint) G_OPTION_ARG_INT", "2"), + ("(gint) G_OPTION_ARG_INT64", "8"), + ("(gint) G_OPTION_ARG_NONE", "0"), + ("(gint) G_OPTION_ARG_STRING", "1"), + ("(gint) G_OPTION_ARG_STRING_ARRAY", "5"), + ("(gint) G_OPTION_ERROR_BAD_VALUE", "1"), + ("(gint) G_OPTION_ERROR_FAILED", "2"), + ("(gint) G_OPTION_ERROR_UNKNOWN_OPTION", "0"), + ("(guint) G_OPTION_FLAG_FILENAME", "16"), + ("(guint) G_OPTION_FLAG_HIDDEN", "1"), + ("(guint) G_OPTION_FLAG_IN_MAIN", "2"), + ("(guint) G_OPTION_FLAG_NOALIAS", "64"), + ("(guint) G_OPTION_FLAG_NONE", "0"), + ("(guint) G_OPTION_FLAG_NO_ARG", "8"), + ("(guint) G_OPTION_FLAG_OPTIONAL_ARG", "32"), + ("(guint) G_OPTION_FLAG_REVERSE", "4"), + ("G_OPTION_REMAINING", ""), + ("G_PDP_ENDIAN", "3412"), + ("G_PI", "3.141593"), + ("G_PI_2", "1.570796"), + ("G_PI_4", "0.785398"), + ("(gint) G_POST_ORDER", "2"), + ("(gint) G_PRE_ORDER", "1"), + ("G_PRIORITY_DEFAULT", "0"), + ("G_PRIORITY_DEFAULT_IDLE", "200"), + ("G_PRIORITY_HIGH", "-100"), + ("G_PRIORITY_HIGH_IDLE", "100"), + ("G_PRIORITY_LOW", "300"), + ("(guint) G_REGEX_ANCHORED", "16"), + ("(guint) G_REGEX_BSR_ANYCRLF", "8388608"), + ("(guint) G_REGEX_CASELESS", "1"), + ("(guint) G_REGEX_DEFAULT", "0"), + ("(guint) G_REGEX_DOLLAR_ENDONLY", "32"), + ("(guint) G_REGEX_DOTALL", "4"), + ("(guint) G_REGEX_DUPNAMES", "524288"), + ("(gint) G_REGEX_ERROR_ASSERTION_EXPECTED", "128"), + ( + "(gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN", + "159", + ), + ( + "(gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED", + "166", + ), + ("(gint) G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE", "176"), + ("(gint) G_REGEX_ERROR_COMPILE", "0"), + ("(gint) G_REGEX_ERROR_DEFINE_REPETION", "155"), + ("(gint) G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME", "143"), + ("(gint) G_REGEX_ERROR_EXPRESSION_TOO_LARGE", "120"), + ("(gint) G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME", "165"), + ("(gint) G_REGEX_ERROR_HEX_CODE_TOO_LARGE", "134"), + ("(gint) G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS", "156"), + ( + "(gint) G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE", + "115", + ), + ("(gint) G_REGEX_ERROR_INFINITE_LOOP", "140"), + ("(gint) G_REGEX_ERROR_INTERNAL", "4"), + ("(gint) G_REGEX_ERROR_INVALID_CONDITION", "135"), + ("(gint) G_REGEX_ERROR_INVALID_CONTROL_CHAR", "168"), + ("(gint) G_REGEX_ERROR_INVALID_DATA_CHARACTER", "164"), + ( + "(gint) G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS", + "107", + ), + ("(gint) G_REGEX_ERROR_INVALID_OCTAL_VALUE", "151"), + ("(gint) G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE", "158"), + ("(gint) G_REGEX_ERROR_MALFORMED_CONDITION", "126"), + ("(gint) G_REGEX_ERROR_MALFORMED_PROPERTY", "146"), + ("(gint) G_REGEX_ERROR_MATCH", "3"), + ("(gint) G_REGEX_ERROR_MEMORY_ERROR", "121"), + ("(gint) G_REGEX_ERROR_MISSING_BACK_REFERENCE", "157"), + ("(gint) G_REGEX_ERROR_MISSING_CONTROL_CHAR", "102"), + ("(gint) G_REGEX_ERROR_MISSING_DIGIT", "163"), + ("(gint) G_REGEX_ERROR_MISSING_NAME", "169"), + ("(gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME", "162"), + ( + "(gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR", + "142", + ), + ("(gint) G_REGEX_ERROR_NAME_TOO_LONG", "175"), + ("(gint) G_REGEX_ERROR_NOTHING_TO_REPEAT", "109"), + ("(gint) G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS", "171"), + ("(gint) G_REGEX_ERROR_NUMBER_TOO_BIG", "161"), + ("(gint) G_REGEX_ERROR_OPTIMIZE", "1"), + ( + "(gint) G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED", + "131", + ), + ( + "(gint) G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS", + "113", + ), + ("(gint) G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER", "104"), + ("(gint) G_REGEX_ERROR_QUANTIFIER_TOO_BIG", "105"), + ("(gint) G_REGEX_ERROR_RANGE_OUT_OF_ORDER", "108"), + ("(gint) G_REGEX_ERROR_REPLACE", "2"), + ( + "(gint) G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND", + "136", + ), + ("(gint) G_REGEX_ERROR_STRAY_BACKSLASH", "101"), + ("(gint) G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG", "148"), + ("(gint) G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE", "154"), + ("(gint) G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES", "127"), + ("(gint) G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES", "172"), + ("(gint) G_REGEX_ERROR_TOO_MANY_SUBPATTERNS", "149"), + ( + "(gint) G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB", + "160", + ), + ("(gint) G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME", "130"), + ("(gint) G_REGEX_ERROR_UNKNOWN_PROPERTY", "147"), + ("(gint) G_REGEX_ERROR_UNMATCHED_PARENTHESIS", "114"), + ("(gint) G_REGEX_ERROR_UNRECOGNIZED_CHARACTER", "112"), + ("(gint) G_REGEX_ERROR_UNRECOGNIZED_ESCAPE", "103"), + ("(gint) G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS", "106"), + ("(gint) G_REGEX_ERROR_UNTERMINATED_COMMENT", "118"), + ("(gint) G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND", "125"), + ("(guint) G_REGEX_EXTENDED", "8"), + ("(guint) G_REGEX_FIRSTLINE", "262144"), + ("(guint) G_REGEX_JAVASCRIPT_COMPAT", "33554432"), + ("(guint) G_REGEX_MATCH_ANCHORED", "16"), + ("(guint) G_REGEX_MATCH_BSR_ANY", "16777216"), + ("(guint) G_REGEX_MATCH_BSR_ANYCRLF", "8388608"), + ("(guint) G_REGEX_MATCH_DEFAULT", "0"), + ("(guint) G_REGEX_MATCH_NEWLINE_ANY", "4194304"), + ("(guint) G_REGEX_MATCH_NEWLINE_ANYCRLF", "5242880"), + ("(guint) G_REGEX_MATCH_NEWLINE_CR", "1048576"), + ("(guint) G_REGEX_MATCH_NEWLINE_CRLF", "3145728"), + ("(guint) G_REGEX_MATCH_NEWLINE_LF", "2097152"), + ("(guint) G_REGEX_MATCH_NOTBOL", "128"), + ("(guint) G_REGEX_MATCH_NOTEMPTY", "1024"), + ("(guint) G_REGEX_MATCH_NOTEMPTY_ATSTART", "268435456"), + ("(guint) G_REGEX_MATCH_NOTEOL", "256"), + ("(guint) G_REGEX_MATCH_PARTIAL", "32768"), + ("(guint) G_REGEX_MATCH_PARTIAL_HARD", "134217728"), + ("(guint) G_REGEX_MATCH_PARTIAL_SOFT", "32768"), + ("(guint) G_REGEX_MULTILINE", "2"), + ("(guint) G_REGEX_NEWLINE_ANYCRLF", "5242880"), + ("(guint) G_REGEX_NEWLINE_CR", "1048576"), + ("(guint) G_REGEX_NEWLINE_CRLF", "3145728"), + ("(guint) G_REGEX_NEWLINE_LF", "2097152"), + ("(guint) G_REGEX_NO_AUTO_CAPTURE", "4096"), + ("(guint) G_REGEX_OPTIMIZE", "8192"), + ("(guint) G_REGEX_RAW", "2048"), + ("(guint) G_REGEX_UNGREEDY", "512"), + ("(gint) G_SEEK_CUR", "0"), + ("(gint) G_SEEK_END", "2"), + ("(gint) G_SEEK_SET", "1"), + ("(gint) G_SHELL_ERROR_BAD_QUOTING", "0"), + ("(gint) G_SHELL_ERROR_EMPTY_STRING", "1"), + ("(gint) G_SHELL_ERROR_FAILED", "2"), + ("(gint) G_SLICE_CONFIG_ALWAYS_MALLOC", "1"), + ("(gint) G_SLICE_CONFIG_BYPASS_MAGAZINES", "2"), + ("(gint) G_SLICE_CONFIG_CHUNK_SIZES", "5"), + ("(gint) G_SLICE_CONFIG_COLOR_INCREMENT", "4"), + ("(gint) G_SLICE_CONFIG_CONTENTION_COUNTER", "6"), + ("(gint) G_SLICE_CONFIG_WORKING_SET_MSECS", "3"), + ("G_SOURCE_CONTINUE", "1"), + ("G_SOURCE_REMOVE", "0"), + ("(guint) G_SPAWN_CHILD_INHERITS_STDERR", "1024"), + ("(guint) G_SPAWN_CHILD_INHERITS_STDIN", "32"), + ("(guint) G_SPAWN_CHILD_INHERITS_STDOUT", "512"), + ("(guint) G_SPAWN_CLOEXEC_PIPES", "256"), + ("(guint) G_SPAWN_DEFAULT", "0"), + ("(guint) G_SPAWN_DO_NOT_REAP_CHILD", "2"), + ("(gint) G_SPAWN_ERROR_2BIG", "5"), + ("(gint) G_SPAWN_ERROR_ACCES", "3"), + ("(gint) G_SPAWN_ERROR_CHDIR", "2"), + ("(gint) G_SPAWN_ERROR_FAILED", "19"), + ("(gint) G_SPAWN_ERROR_FORK", "0"), + ("(gint) G_SPAWN_ERROR_INVAL", "16"), + ("(gint) G_SPAWN_ERROR_IO", "13"), + ("(gint) G_SPAWN_ERROR_ISDIR", "17"), + ("(gint) G_SPAWN_ERROR_LIBBAD", "18"), + ("(gint) G_SPAWN_ERROR_LOOP", "11"), + ("(gint) G_SPAWN_ERROR_MFILE", "15"), + ("(gint) G_SPAWN_ERROR_NAMETOOLONG", "7"), + ("(gint) G_SPAWN_ERROR_NFILE", "14"), + ("(gint) G_SPAWN_ERROR_NOENT", "8"), + ("(gint) G_SPAWN_ERROR_NOEXEC", "6"), + ("(gint) G_SPAWN_ERROR_NOMEM", "9"), + ("(gint) G_SPAWN_ERROR_NOTDIR", "10"), + ("(gint) G_SPAWN_ERROR_PERM", "4"), + ("(gint) G_SPAWN_ERROR_READ", "1"), + ("(gint) G_SPAWN_ERROR_TOO_BIG", "5"), + ("(gint) G_SPAWN_ERROR_TXTBUSY", "12"), + ("(guint) G_SPAWN_FILE_AND_ARGV_ZERO", "64"), + ("(guint) G_SPAWN_LEAVE_DESCRIPTORS_OPEN", "1"), + ("(guint) G_SPAWN_SEARCH_PATH", "4"), + ("(guint) G_SPAWN_SEARCH_PATH_FROM_ENVP", "128"), + ("(guint) G_SPAWN_STDERR_TO_DEV_NULL", "16"), + ("(guint) G_SPAWN_STDIN_FROM_DEV_NULL", "2048"), + ("(guint) G_SPAWN_STDOUT_TO_DEV_NULL", "8"), + ("G_SQRT2", "1.414214"), + ("G_STR_DELIMITERS", "_-|> <."), + ("(gint) G_TEST_BUILT", "1"), + ("(gint) G_TEST_DIST", "0"), + ("(gint) G_TEST_LOG_ERROR", "1"), + ("(gint) G_TEST_LOG_LIST_CASE", "3"), + ("(gint) G_TEST_LOG_MAX_RESULT", "8"), + ("(gint) G_TEST_LOG_MESSAGE", "9"), + ("(gint) G_TEST_LOG_MIN_RESULT", "7"), + ("(gint) G_TEST_LOG_NONE", "0"), + ("(gint) G_TEST_LOG_SKIP_CASE", "4"), + ("(gint) G_TEST_LOG_START_BINARY", "2"), + ("(gint) G_TEST_LOG_START_CASE", "5"), + ("(gint) G_TEST_LOG_START_SUITE", "10"), + ("(gint) G_TEST_LOG_STOP_CASE", "6"), + ("(gint) G_TEST_LOG_STOP_SUITE", "11"), + ("G_TEST_OPTION_ISOLATE_DIRS", "isolate_dirs"), + ("(gint) G_TEST_RUN_FAILURE", "2"), + ("(gint) G_TEST_RUN_INCOMPLETE", "3"), + ("(gint) G_TEST_RUN_SKIPPED", "1"), + ("(gint) G_TEST_RUN_SUCCESS", "0"), + ("(guint) G_TEST_SUBPROCESS_DEFAULT", "0"), + ("(guint) G_TEST_SUBPROCESS_INHERIT_STDERR", "4"), + ("(guint) G_TEST_SUBPROCESS_INHERIT_STDIN", "1"), + ("(guint) G_TEST_SUBPROCESS_INHERIT_STDOUT", "2"), + ("(guint) G_TEST_TRAP_DEFAULT", "0"), + ("(guint) G_TEST_TRAP_INHERIT_STDIN", "512"), + ("(guint) G_TEST_TRAP_SILENCE_STDERR", "256"), + ("(guint) G_TEST_TRAP_SILENCE_STDOUT", "128"), + ("(gint) G_THREAD_ERROR_AGAIN", "0"), + ("G_TIME_SPAN_DAY", "86400000000"), + ("G_TIME_SPAN_HOUR", "3600000000"), + ("G_TIME_SPAN_MILLISECOND", "1000"), + ("G_TIME_SPAN_MINUTE", "60000000"), + ("G_TIME_SPAN_SECOND", "1000000"), + ("(gint) G_TIME_TYPE_DAYLIGHT", "1"), + ("(gint) G_TIME_TYPE_STANDARD", "0"), + ("(gint) G_TIME_TYPE_UNIVERSAL", "2"), + ("(gint) G_TOKEN_BINARY", "259"), + ("(gint) G_TOKEN_CHAR", "258"), + ("(gint) G_TOKEN_COMMA", "44"), + ("(gint) G_TOKEN_COMMENT_MULTI", "269"), + ("(gint) G_TOKEN_COMMENT_SINGLE", "268"), + ("(gint) G_TOKEN_EOF", "0"), + ("(gint) G_TOKEN_EQUAL_SIGN", "61"), + ("(gint) G_TOKEN_ERROR", "257"), + ("(gint) G_TOKEN_FLOAT", "263"), + ("(gint) G_TOKEN_HEX", "262"), + ("(gint) G_TOKEN_IDENTIFIER", "266"), + ("(gint) G_TOKEN_IDENTIFIER_NULL", "267"), + ("(gint) G_TOKEN_INT", "261"), + ("(gint) G_TOKEN_LEFT_BRACE", "91"), + ("(gint) G_TOKEN_LEFT_CURLY", "123"), + ("(gint) G_TOKEN_LEFT_PAREN", "40"), + ("(gint) G_TOKEN_NONE", "256"), + ("(gint) G_TOKEN_OCTAL", "260"), + ("(gint) G_TOKEN_RIGHT_BRACE", "93"), + ("(gint) G_TOKEN_RIGHT_CURLY", "125"), + ("(gint) G_TOKEN_RIGHT_PAREN", "41"), + ("(gint) G_TOKEN_STRING", "264"), + ("(gint) G_TOKEN_SYMBOL", "265"), + ("(guint) G_TRAVERSE_ALL", "3"), + ("(guint) G_TRAVERSE_LEAFS", "1"), + ("(guint) G_TRAVERSE_LEAVES", "1"), + ("(guint) G_TRAVERSE_MASK", "3"), + ("(guint) G_TRAVERSE_NON_LEAFS", "2"), + ("(guint) G_TRAVERSE_NON_LEAVES", "2"), + ("G_UNICHAR_MAX_DECOMPOSITION_LENGTH", "18"), + ("(gint) G_UNICODE_BREAK_AFTER", "10"), + ("(gint) G_UNICODE_BREAK_ALPHABETIC", "23"), + ("(gint) G_UNICODE_BREAK_AMBIGUOUS", "27"), + ("(gint) G_UNICODE_BREAK_BEFORE", "11"), + ("(gint) G_UNICODE_BREAK_BEFORE_AND_AFTER", "12"), + ("(gint) G_UNICODE_BREAK_CARRIAGE_RETURN", "1"), + ("(gint) G_UNICODE_BREAK_CLOSE_PARANTHESIS", "36"), + ("(gint) G_UNICODE_BREAK_CLOSE_PARENTHESIS", "36"), + ("(gint) G_UNICODE_BREAK_CLOSE_PUNCTUATION", "16"), + ("(gint) G_UNICODE_BREAK_COMBINING_MARK", "3"), + ("(gint) G_UNICODE_BREAK_COMPLEX_CONTEXT", "26"), + ("(gint) G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER", "37"), + ("(gint) G_UNICODE_BREAK_CONTINGENT", "8"), + ("(gint) G_UNICODE_BREAK_EMOJI_BASE", "40"), + ("(gint) G_UNICODE_BREAK_EMOJI_MODIFIER", "41"), + ("(gint) G_UNICODE_BREAK_EXCLAMATION", "18"), + ("(gint) G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE", "35"), + ("(gint) G_UNICODE_BREAK_HANGUL_LV_SYLLABLE", "34"), + ("(gint) G_UNICODE_BREAK_HANGUL_L_JAMO", "31"), + ("(gint) G_UNICODE_BREAK_HANGUL_T_JAMO", "33"), + ("(gint) G_UNICODE_BREAK_HANGUL_V_JAMO", "32"), + ("(gint) G_UNICODE_BREAK_HEBREW_LETTER", "38"), + ("(gint) G_UNICODE_BREAK_HYPHEN", "13"), + ("(gint) G_UNICODE_BREAK_IDEOGRAPHIC", "19"), + ("(gint) G_UNICODE_BREAK_INFIX_SEPARATOR", "21"), + ("(gint) G_UNICODE_BREAK_INSEPARABLE", "6"), + ("(gint) G_UNICODE_BREAK_LINE_FEED", "2"), + ("(gint) G_UNICODE_BREAK_MANDATORY", "0"), + ("(gint) G_UNICODE_BREAK_NEXT_LINE", "29"), + ("(gint) G_UNICODE_BREAK_NON_BREAKING_GLUE", "7"), + ("(gint) G_UNICODE_BREAK_NON_STARTER", "14"), + ("(gint) G_UNICODE_BREAK_NUMERIC", "20"), + ("(gint) G_UNICODE_BREAK_OPEN_PUNCTUATION", "15"), + ("(gint) G_UNICODE_BREAK_POSTFIX", "25"), + ("(gint) G_UNICODE_BREAK_PREFIX", "24"), + ("(gint) G_UNICODE_BREAK_QUOTATION", "17"), + ("(gint) G_UNICODE_BREAK_REGIONAL_INDICATOR", "39"), + ("(gint) G_UNICODE_BREAK_SPACE", "9"), + ("(gint) G_UNICODE_BREAK_SURROGATE", "4"), + ("(gint) G_UNICODE_BREAK_SYMBOL", "22"), + ("(gint) G_UNICODE_BREAK_UNKNOWN", "28"), + ("(gint) G_UNICODE_BREAK_WORD_JOINER", "30"), + ("(gint) G_UNICODE_BREAK_ZERO_WIDTH_JOINER", "42"), + ("(gint) G_UNICODE_BREAK_ZERO_WIDTH_SPACE", "5"), + ("(gint) G_UNICODE_CLOSE_PUNCTUATION", "18"), + ("(gint) G_UNICODE_CONNECT_PUNCTUATION", "16"), + ("(gint) G_UNICODE_CONTROL", "0"), + ("(gint) G_UNICODE_CURRENCY_SYMBOL", "23"), + ("(gint) G_UNICODE_DASH_PUNCTUATION", "17"), + ("(gint) G_UNICODE_DECIMAL_NUMBER", "13"), + ("(gint) G_UNICODE_ENCLOSING_MARK", "11"), + ("(gint) G_UNICODE_FINAL_PUNCTUATION", "19"), + ("(gint) G_UNICODE_FORMAT", "1"), + ("(gint) G_UNICODE_INITIAL_PUNCTUATION", "20"), + ("(gint) G_UNICODE_LETTER_NUMBER", "14"), + ("(gint) G_UNICODE_LINE_SEPARATOR", "27"), + ("(gint) G_UNICODE_LOWERCASE_LETTER", "5"), + ("(gint) G_UNICODE_MATH_SYMBOL", "25"), + ("(gint) G_UNICODE_MODIFIER_LETTER", "6"), + ("(gint) G_UNICODE_MODIFIER_SYMBOL", "24"), + ("(gint) G_UNICODE_NON_SPACING_MARK", "12"), + ("(gint) G_UNICODE_OPEN_PUNCTUATION", "22"), + ("(gint) G_UNICODE_OTHER_LETTER", "7"), + ("(gint) G_UNICODE_OTHER_NUMBER", "15"), + ("(gint) G_UNICODE_OTHER_PUNCTUATION", "21"), + ("(gint) G_UNICODE_OTHER_SYMBOL", "26"), + ("(gint) G_UNICODE_PARAGRAPH_SEPARATOR", "28"), + ("(gint) G_UNICODE_PRIVATE_USE", "3"), + ("(gint) G_UNICODE_SCRIPT_ADLAM", "132"), + ("(gint) G_UNICODE_SCRIPT_AHOM", "126"), + ("(gint) G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS", "127"), + ("(gint) G_UNICODE_SCRIPT_ARABIC", "2"), + ("(gint) G_UNICODE_SCRIPT_ARMENIAN", "3"), + ("(gint) G_UNICODE_SCRIPT_AVESTAN", "78"), + ("(gint) G_UNICODE_SCRIPT_BALINESE", "62"), + ("(gint) G_UNICODE_SCRIPT_BAMUM", "79"), + ("(gint) G_UNICODE_SCRIPT_BASSA_VAH", "103"), + ("(gint) G_UNICODE_SCRIPT_BATAK", "93"), + ("(gint) G_UNICODE_SCRIPT_BENGALI", "4"), + ("(gint) G_UNICODE_SCRIPT_BHAIKSUKI", "133"), + ("(gint) G_UNICODE_SCRIPT_BOPOMOFO", "5"), + ("(gint) G_UNICODE_SCRIPT_BRAHMI", "94"), + ("(gint) G_UNICODE_SCRIPT_BRAILLE", "46"), + ("(gint) G_UNICODE_SCRIPT_BUGINESE", "55"), + ("(gint) G_UNICODE_SCRIPT_BUHID", "44"), + ("(gint) G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL", "40"), + ("(gint) G_UNICODE_SCRIPT_CARIAN", "75"), + ("(gint) G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN", "104"), + ("(gint) G_UNICODE_SCRIPT_CHAKMA", "96"), + ("(gint) G_UNICODE_SCRIPT_CHAM", "72"), + ("(gint) G_UNICODE_SCRIPT_CHEROKEE", "6"), + ("(gint) G_UNICODE_SCRIPT_CHORASMIAN", "153"), + ("(gint) G_UNICODE_SCRIPT_COMMON", "0"), + ("(gint) G_UNICODE_SCRIPT_COPTIC", "7"), + ("(gint) G_UNICODE_SCRIPT_CUNEIFORM", "63"), + ("(gint) G_UNICODE_SCRIPT_CYPRIOT", "47"), + ("(gint) G_UNICODE_SCRIPT_CYPRO_MINOAN", "157"), + ("(gint) G_UNICODE_SCRIPT_CYRILLIC", "8"), + ("(gint) G_UNICODE_SCRIPT_DESERET", "9"), + ("(gint) G_UNICODE_SCRIPT_DEVANAGARI", "10"), + ("(gint) G_UNICODE_SCRIPT_DIVES_AKURU", "154"), + ("(gint) G_UNICODE_SCRIPT_DOGRA", "142"), + ("(gint) G_UNICODE_SCRIPT_DUPLOYAN", "105"), + ("(gint) G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS", "80"), + ("(gint) G_UNICODE_SCRIPT_ELBASAN", "106"), + ("(gint) G_UNICODE_SCRIPT_ELYMAIC", "149"), + ("(gint) G_UNICODE_SCRIPT_ETHIOPIC", "11"), + ("(gint) G_UNICODE_SCRIPT_GEORGIAN", "12"), + ("(gint) G_UNICODE_SCRIPT_GLAGOLITIC", "56"), + ("(gint) G_UNICODE_SCRIPT_GOTHIC", "13"), + ("(gint) G_UNICODE_SCRIPT_GRANTHA", "107"), + ("(gint) G_UNICODE_SCRIPT_GREEK", "14"), + ("(gint) G_UNICODE_SCRIPT_GUJARATI", "15"), + ("(gint) G_UNICODE_SCRIPT_GUNJALA_GONDI", "143"), + ("(gint) G_UNICODE_SCRIPT_GURMUKHI", "16"), + ("(gint) G_UNICODE_SCRIPT_HAN", "17"), + ("(gint) G_UNICODE_SCRIPT_HANGUL", "18"), + ("(gint) G_UNICODE_SCRIPT_HANIFI_ROHINGYA", "144"), + ("(gint) G_UNICODE_SCRIPT_HANUNOO", "43"), + ("(gint) G_UNICODE_SCRIPT_HATRAN", "128"), + ("(gint) G_UNICODE_SCRIPT_HEBREW", "19"), + ("(gint) G_UNICODE_SCRIPT_HIRAGANA", "20"), + ("(gint) G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC", "81"), + ("(gint) G_UNICODE_SCRIPT_INHERITED", "1"), + ("(gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI", "82"), + ("(gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN", "83"), + ("(gint) G_UNICODE_SCRIPT_INVALID_CODE", "-1"), + ("(gint) G_UNICODE_SCRIPT_JAVANESE", "84"), + ("(gint) G_UNICODE_SCRIPT_KAITHI", "85"), + ("(gint) G_UNICODE_SCRIPT_KANNADA", "21"), + ("(gint) G_UNICODE_SCRIPT_KATAKANA", "22"), + ("(gint) G_UNICODE_SCRIPT_KAWI", "163"), + ("(gint) G_UNICODE_SCRIPT_KAYAH_LI", "67"), + ("(gint) G_UNICODE_SCRIPT_KHAROSHTHI", "60"), + ("(gint) G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT", "155"), + ("(gint) G_UNICODE_SCRIPT_KHMER", "23"), + ("(gint) G_UNICODE_SCRIPT_KHOJKI", "108"), + ("(gint) G_UNICODE_SCRIPT_KHUDAWADI", "109"), + ("(gint) G_UNICODE_SCRIPT_LAO", "24"), + ("(gint) G_UNICODE_SCRIPT_LATIN", "25"), + ("(gint) G_UNICODE_SCRIPT_LEPCHA", "68"), + ("(gint) G_UNICODE_SCRIPT_LIMBU", "48"), + ("(gint) G_UNICODE_SCRIPT_LINEAR_A", "110"), + ("(gint) G_UNICODE_SCRIPT_LINEAR_B", "51"), + ("(gint) G_UNICODE_SCRIPT_LISU", "86"), + ("(gint) G_UNICODE_SCRIPT_LYCIAN", "76"), + ("(gint) G_UNICODE_SCRIPT_LYDIAN", "77"), + ("(gint) G_UNICODE_SCRIPT_MAHAJANI", "111"), + ("(gint) G_UNICODE_SCRIPT_MAKASAR", "145"), + ("(gint) G_UNICODE_SCRIPT_MALAYALAM", "26"), + ("(gint) G_UNICODE_SCRIPT_MANDAIC", "95"), + ("(gint) G_UNICODE_SCRIPT_MANICHAEAN", "112"), + ("(gint) G_UNICODE_SCRIPT_MARCHEN", "134"), + ("(gint) G_UNICODE_SCRIPT_MASARAM_GONDI", "138"), + ("(gint) G_UNICODE_SCRIPT_MATH", "162"), + ("(gint) G_UNICODE_SCRIPT_MEDEFAIDRIN", "146"), + ("(gint) G_UNICODE_SCRIPT_MEETEI_MAYEK", "87"), + ("(gint) G_UNICODE_SCRIPT_MENDE_KIKAKUI", "113"), + ("(gint) G_UNICODE_SCRIPT_MEROITIC_CURSIVE", "97"), + ("(gint) G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS", "98"), + ("(gint) G_UNICODE_SCRIPT_MIAO", "99"), + ("(gint) G_UNICODE_SCRIPT_MODI", "114"), + ("(gint) G_UNICODE_SCRIPT_MONGOLIAN", "27"), + ("(gint) G_UNICODE_SCRIPT_MRO", "115"), + ("(gint) G_UNICODE_SCRIPT_MULTANI", "129"), + ("(gint) G_UNICODE_SCRIPT_MYANMAR", "28"), + ("(gint) G_UNICODE_SCRIPT_NABATAEAN", "116"), + ("(gint) G_UNICODE_SCRIPT_NAG_MUNDARI", "164"), + ("(gint) G_UNICODE_SCRIPT_NANDINAGARI", "150"), + ("(gint) G_UNICODE_SCRIPT_NEWA", "135"), + ("(gint) G_UNICODE_SCRIPT_NEW_TAI_LUE", "54"), + ("(gint) G_UNICODE_SCRIPT_NKO", "66"), + ("(gint) G_UNICODE_SCRIPT_NUSHU", "139"), + ("(gint) G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG", "151"), + ("(gint) G_UNICODE_SCRIPT_OGHAM", "29"), + ("(gint) G_UNICODE_SCRIPT_OLD_HUNGARIAN", "130"), + ("(gint) G_UNICODE_SCRIPT_OLD_ITALIC", "30"), + ("(gint) G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN", "117"), + ("(gint) G_UNICODE_SCRIPT_OLD_PERMIC", "118"), + ("(gint) G_UNICODE_SCRIPT_OLD_PERSIAN", "59"), + ("(gint) G_UNICODE_SCRIPT_OLD_SOGDIAN", "147"), + ("(gint) G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN", "88"), + ("(gint) G_UNICODE_SCRIPT_OLD_TURKIC", "89"), + ("(gint) G_UNICODE_SCRIPT_OLD_UYGHUR", "158"), + ("(gint) G_UNICODE_SCRIPT_OL_CHIKI", "73"), + ("(gint) G_UNICODE_SCRIPT_ORIYA", "31"), + ("(gint) G_UNICODE_SCRIPT_OSAGE", "136"), + ("(gint) G_UNICODE_SCRIPT_OSMANYA", "49"), + ("(gint) G_UNICODE_SCRIPT_PAHAWH_HMONG", "119"), + ("(gint) G_UNICODE_SCRIPT_PALMYRENE", "120"), + ("(gint) G_UNICODE_SCRIPT_PAU_CIN_HAU", "121"), + ("(gint) G_UNICODE_SCRIPT_PHAGS_PA", "65"), + ("(gint) G_UNICODE_SCRIPT_PHOENICIAN", "64"), + ("(gint) G_UNICODE_SCRIPT_PSALTER_PAHLAVI", "122"), + ("(gint) G_UNICODE_SCRIPT_REJANG", "69"), + ("(gint) G_UNICODE_SCRIPT_RUNIC", "32"), + ("(gint) G_UNICODE_SCRIPT_SAMARITAN", "90"), + ("(gint) G_UNICODE_SCRIPT_SAURASHTRA", "71"), + ("(gint) G_UNICODE_SCRIPT_SHARADA", "100"), + ("(gint) G_UNICODE_SCRIPT_SHAVIAN", "50"), + ("(gint) G_UNICODE_SCRIPT_SIDDHAM", "123"), + ("(gint) G_UNICODE_SCRIPT_SIGNWRITING", "131"), + ("(gint) G_UNICODE_SCRIPT_SINHALA", "33"), + ("(gint) G_UNICODE_SCRIPT_SOGDIAN", "148"), + ("(gint) G_UNICODE_SCRIPT_SORA_SOMPENG", "101"), + ("(gint) G_UNICODE_SCRIPT_SOYOMBO", "140"), + ("(gint) G_UNICODE_SCRIPT_SUNDANESE", "70"), + ("(gint) G_UNICODE_SCRIPT_SYLOTI_NAGRI", "58"), + ("(gint) G_UNICODE_SCRIPT_SYRIAC", "34"), + ("(gint) G_UNICODE_SCRIPT_TAGALOG", "42"), + ("(gint) G_UNICODE_SCRIPT_TAGBANWA", "45"), + ("(gint) G_UNICODE_SCRIPT_TAI_LE", "52"), + ("(gint) G_UNICODE_SCRIPT_TAI_THAM", "91"), + ("(gint) G_UNICODE_SCRIPT_TAI_VIET", "92"), + ("(gint) G_UNICODE_SCRIPT_TAKRI", "102"), + ("(gint) G_UNICODE_SCRIPT_TAMIL", "35"), + ("(gint) G_UNICODE_SCRIPT_TANGSA", "159"), + ("(gint) G_UNICODE_SCRIPT_TANGUT", "137"), + ("(gint) G_UNICODE_SCRIPT_TELUGU", "36"), + ("(gint) G_UNICODE_SCRIPT_THAANA", "37"), + ("(gint) G_UNICODE_SCRIPT_THAI", "38"), + ("(gint) G_UNICODE_SCRIPT_TIBETAN", "39"), + ("(gint) G_UNICODE_SCRIPT_TIFINAGH", "57"), + ("(gint) G_UNICODE_SCRIPT_TIRHUTA", "124"), + ("(gint) G_UNICODE_SCRIPT_TOTO", "160"), + ("(gint) G_UNICODE_SCRIPT_UGARITIC", "53"), + ("(gint) G_UNICODE_SCRIPT_UNKNOWN", "61"), + ("(gint) G_UNICODE_SCRIPT_VAI", "74"), + ("(gint) G_UNICODE_SCRIPT_VITHKUQI", "161"), + ("(gint) G_UNICODE_SCRIPT_WANCHO", "152"), + ("(gint) G_UNICODE_SCRIPT_WARANG_CITI", "125"), + ("(gint) G_UNICODE_SCRIPT_YEZIDI", "156"), + ("(gint) G_UNICODE_SCRIPT_YI", "41"), + ("(gint) G_UNICODE_SCRIPT_ZANABAZAR_SQUARE", "141"), + ("(gint) G_UNICODE_SPACE_SEPARATOR", "29"), + ("(gint) G_UNICODE_SPACING_MARK", "10"), + ("(gint) G_UNICODE_SURROGATE", "4"), + ("(gint) G_UNICODE_TITLECASE_LETTER", "8"), + ("(gint) G_UNICODE_UNASSIGNED", "2"), + ("(gint) G_UNICODE_UPPERCASE_LETTER", "9"), + ("(gint) G_URI_ERROR_BAD_AUTH_PARAMS", "4"), + ("(gint) G_URI_ERROR_BAD_FRAGMENT", "9"), + ("(gint) G_URI_ERROR_BAD_HOST", "5"), + ("(gint) G_URI_ERROR_BAD_PASSWORD", "3"), + ("(gint) G_URI_ERROR_BAD_PATH", "7"), + ("(gint) G_URI_ERROR_BAD_PORT", "6"), + ("(gint) G_URI_ERROR_BAD_QUERY", "8"), + ("(gint) G_URI_ERROR_BAD_SCHEME", "1"), + ("(gint) G_URI_ERROR_BAD_USER", "2"), + ("(gint) G_URI_ERROR_FAILED", "0"), + ("(guint) G_URI_FLAGS_ENCODED", "8"), + ("(guint) G_URI_FLAGS_ENCODED_FRAGMENT", "128"), + ("(guint) G_URI_FLAGS_ENCODED_PATH", "64"), + ("(guint) G_URI_FLAGS_ENCODED_QUERY", "32"), + ("(guint) G_URI_FLAGS_HAS_AUTH_PARAMS", "4"), + ("(guint) G_URI_FLAGS_HAS_PASSWORD", "2"), + ("(guint) G_URI_FLAGS_NONE", "0"), + ("(guint) G_URI_FLAGS_NON_DNS", "16"), + ("(guint) G_URI_FLAGS_PARSE_RELAXED", "1"), + ("(guint) G_URI_FLAGS_SCHEME_NORMALIZE", "256"), + ("(guint) G_URI_HIDE_AUTH_PARAMS", "4"), + ("(guint) G_URI_HIDE_FRAGMENT", "16"), + ("(guint) G_URI_HIDE_NONE", "0"), + ("(guint) G_URI_HIDE_PASSWORD", "2"), + ("(guint) G_URI_HIDE_QUERY", "8"), + ("(guint) G_URI_HIDE_USERINFO", "1"), + ("(guint) G_URI_PARAMS_CASE_INSENSITIVE", "1"), + ("(guint) G_URI_PARAMS_NONE", "0"), + ("(guint) G_URI_PARAMS_PARSE_RELAXED", "4"), + ("(guint) G_URI_PARAMS_WWW_FORM", "2"), + ("G_URI_RESERVED_CHARS_GENERIC_DELIMITERS", ":/?#[]@"), + ( + "G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS", + "!$&'()*+,;=", + ), + ("G_USEC_PER_SEC", "1000000"), + ("(gint) G_USER_DIRECTORY_DESKTOP", "0"), + ("(gint) G_USER_DIRECTORY_DOCUMENTS", "1"), + ("(gint) G_USER_DIRECTORY_DOWNLOAD", "2"), + ("(gint) G_USER_DIRECTORY_MUSIC", "3"), + ("(gint) G_USER_DIRECTORY_PICTURES", "4"), + ("(gint) G_USER_DIRECTORY_PUBLIC_SHARE", "5"), + ("(gint) G_USER_DIRECTORY_TEMPLATES", "6"), + ("(gint) G_USER_DIRECTORY_VIDEOS", "7"), + ("(gint) G_USER_N_DIRECTORIES", "8"), + ("(gint) G_VARIANT_CLASS_ARRAY", "97"), + ("(gint) G_VARIANT_CLASS_BOOLEAN", "98"), + ("(gint) G_VARIANT_CLASS_BYTE", "121"), + ("(gint) G_VARIANT_CLASS_DICT_ENTRY", "123"), + ("(gint) G_VARIANT_CLASS_DOUBLE", "100"), + ("(gint) G_VARIANT_CLASS_HANDLE", "104"), + ("(gint) G_VARIANT_CLASS_INT16", "110"), + ("(gint) G_VARIANT_CLASS_INT32", "105"), + ("(gint) G_VARIANT_CLASS_INT64", "120"), + ("(gint) G_VARIANT_CLASS_MAYBE", "109"), + ("(gint) G_VARIANT_CLASS_OBJECT_PATH", "111"), + ("(gint) G_VARIANT_CLASS_SIGNATURE", "103"), + ("(gint) G_VARIANT_CLASS_STRING", "115"), + ("(gint) G_VARIANT_CLASS_TUPLE", "40"), + ("(gint) G_VARIANT_CLASS_UINT16", "113"), + ("(gint) G_VARIANT_CLASS_UINT32", "117"), + ("(gint) G_VARIANT_CLASS_UINT64", "116"), + ("(gint) G_VARIANT_CLASS_VARIANT", "118"), + ("(gint) G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED", "1"), + ("(gint) G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE", "2"), + ("(gint) G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED", "3"), + ("(gint) G_VARIANT_PARSE_ERROR_FAILED", "0"), + ("(gint) G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END", "4"), + ("(gint) G_VARIANT_PARSE_ERROR_INVALID_CHARACTER", "5"), + ("(gint) G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING", "6"), + ("(gint) G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH", "7"), + ("(gint) G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE", "8"), + ("(gint) G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING", "9"), + ("(gint) G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE", "10"), + ("(gint) G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE", "11"), + ("(gint) G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG", "12"), + ("(gint) G_VARIANT_PARSE_ERROR_RECURSION", "18"), + ("(gint) G_VARIANT_PARSE_ERROR_TYPE_ERROR", "13"), + ("(gint) G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN", "14"), + ("(gint) G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD", "15"), + ( + "(gint) G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT", + "16", + ), + ("(gint) G_VARIANT_PARSE_ERROR_VALUE_EXPECTED", "17"), + ("G_WIN32_MSG_HANDLE", "19981206"), +]; diff --git a/tests/constant.c b/tests/constant.c new file mode 100644 index 0000000..f5d83a7 --- /dev/null +++ b/tests/constant.c @@ -0,0 +1,837 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from gir-files (https://github.com/gtk-rs/gir-files) +// DO NOT EDIT + +#include "manual.h" +#include + +#define PRINT_CONSTANT(CONSTANT_NAME) \ + printf("%s;", #CONSTANT_NAME); \ + printf(_Generic((CONSTANT_NAME), \ + char *: "%s", \ + const char *: "%s", \ + char: "%c", \ + signed char: "%hhd", \ + unsigned char: "%hhu", \ + short int: "%hd", \ + unsigned short int: "%hu", \ + int: "%d", \ + unsigned int: "%u", \ + long: "%ld", \ + unsigned long: "%lu", \ + long long: "%lld", \ + unsigned long long: "%llu", \ + float: "%f", \ + double: "%f", \ + long double: "%ld"), \ + CONSTANT_NAME); \ + printf("\n"); + +int main() { + PRINT_CONSTANT(GLIB_SYSDEF_AF_INET); + PRINT_CONSTANT(GLIB_SYSDEF_AF_INET6); + PRINT_CONSTANT(GLIB_SYSDEF_AF_UNIX); + PRINT_CONSTANT(GLIB_SYSDEF_MSG_DONTROUTE); + PRINT_CONSTANT(GLIB_SYSDEF_MSG_OOB); + PRINT_CONSTANT(GLIB_SYSDEF_MSG_PEEK); + PRINT_CONSTANT((guint) G_ASCII_ALNUM); + PRINT_CONSTANT((guint) G_ASCII_ALPHA); + PRINT_CONSTANT((guint) G_ASCII_CNTRL); + PRINT_CONSTANT((guint) G_ASCII_DIGIT); + PRINT_CONSTANT(G_ASCII_DTOSTR_BUF_SIZE); + PRINT_CONSTANT((guint) G_ASCII_GRAPH); + PRINT_CONSTANT((guint) G_ASCII_LOWER); + PRINT_CONSTANT((guint) G_ASCII_PRINT); + PRINT_CONSTANT((guint) G_ASCII_PUNCT); + PRINT_CONSTANT((guint) G_ASCII_SPACE); + PRINT_CONSTANT((guint) G_ASCII_UPPER); + PRINT_CONSTANT((guint) G_ASCII_XDIGIT); + PRINT_CONSTANT(G_BIG_ENDIAN); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_INVALID_URI); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_INVALID_VALUE); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_READ); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND); + PRINT_CONSTANT((gint) G_BOOKMARK_FILE_ERROR_WRITE); + PRINT_CONSTANT((gint) G_CHECKSUM_MD5); + PRINT_CONSTANT((gint) G_CHECKSUM_SHA1); + PRINT_CONSTANT((gint) G_CHECKSUM_SHA256); + PRINT_CONSTANT((gint) G_CHECKSUM_SHA384); + PRINT_CONSTANT((gint) G_CHECKSUM_SHA512); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_BAD_URI); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_EMBEDDED_NUL); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_FAILED); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_ILLEGAL_SEQUENCE); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_NOT_ABSOLUTE_PATH); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_NO_CONVERSION); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_NO_MEMORY); + PRINT_CONSTANT((gint) G_CONVERT_ERROR_PARTIAL_INPUT); + PRINT_CONSTANT(G_CSET_A_2_Z); + PRINT_CONSTANT(G_CSET_DIGITS); + PRINT_CONSTANT(G_CSET_a_2_z); + PRINT_CONSTANT(G_DATALIST_FLAGS_MASK); + PRINT_CONSTANT((gint) G_DATE_APRIL); + PRINT_CONSTANT((gint) G_DATE_AUGUST); + PRINT_CONSTANT(G_DATE_BAD_DAY); + PRINT_CONSTANT(G_DATE_BAD_JULIAN); + PRINT_CONSTANT((gint) G_DATE_BAD_MONTH); + PRINT_CONSTANT((gint) G_DATE_BAD_WEEKDAY); + PRINT_CONSTANT(G_DATE_BAD_YEAR); + PRINT_CONSTANT((gint) G_DATE_DAY); + PRINT_CONSTANT((gint) G_DATE_DECEMBER); + PRINT_CONSTANT((gint) G_DATE_FEBRUARY); + PRINT_CONSTANT((gint) G_DATE_FRIDAY); + PRINT_CONSTANT((gint) G_DATE_JANUARY); + PRINT_CONSTANT((gint) G_DATE_JULY); + PRINT_CONSTANT((gint) G_DATE_JUNE); + PRINT_CONSTANT((gint) G_DATE_MARCH); + PRINT_CONSTANT((gint) G_DATE_MAY); + PRINT_CONSTANT((gint) G_DATE_MONDAY); + PRINT_CONSTANT((gint) G_DATE_MONTH); + PRINT_CONSTANT((gint) G_DATE_NOVEMBER); + PRINT_CONSTANT((gint) G_DATE_OCTOBER); + PRINT_CONSTANT((gint) G_DATE_SATURDAY); + PRINT_CONSTANT((gint) G_DATE_SEPTEMBER); + PRINT_CONSTANT((gint) G_DATE_SUNDAY); + PRINT_CONSTANT((gint) G_DATE_THURSDAY); + PRINT_CONSTANT((gint) G_DATE_TUESDAY); + PRINT_CONSTANT((gint) G_DATE_WEDNESDAY); + PRINT_CONSTANT((gint) G_DATE_YEAR); + PRINT_CONSTANT(G_E); + PRINT_CONSTANT((gint) G_ERR_DIGIT_RADIX); + PRINT_CONSTANT((gint) G_ERR_FLOAT_MALFORMED); + PRINT_CONSTANT((gint) G_ERR_FLOAT_RADIX); + PRINT_CONSTANT((gint) G_ERR_NON_DIGIT_IN_CONST); + PRINT_CONSTANT((gint) G_ERR_UNEXP_EOF); + PRINT_CONSTANT((gint) G_ERR_UNEXP_EOF_IN_COMMENT); + PRINT_CONSTANT((gint) G_ERR_UNEXP_EOF_IN_STRING); + PRINT_CONSTANT((gint) G_ERR_UNKNOWN); + PRINT_CONSTANT((gint) G_FILE_ERROR_ACCES); + PRINT_CONSTANT((gint) G_FILE_ERROR_AGAIN); + PRINT_CONSTANT((gint) G_FILE_ERROR_BADF); + PRINT_CONSTANT((gint) G_FILE_ERROR_EXIST); + PRINT_CONSTANT((gint) G_FILE_ERROR_FAILED); + PRINT_CONSTANT((gint) G_FILE_ERROR_FAULT); + PRINT_CONSTANT((gint) G_FILE_ERROR_INTR); + PRINT_CONSTANT((gint) G_FILE_ERROR_INVAL); + PRINT_CONSTANT((gint) G_FILE_ERROR_IO); + PRINT_CONSTANT((gint) G_FILE_ERROR_ISDIR); + PRINT_CONSTANT((gint) G_FILE_ERROR_LOOP); + PRINT_CONSTANT((gint) G_FILE_ERROR_MFILE); + PRINT_CONSTANT((gint) G_FILE_ERROR_NAMETOOLONG); + PRINT_CONSTANT((gint) G_FILE_ERROR_NFILE); + PRINT_CONSTANT((gint) G_FILE_ERROR_NODEV); + PRINT_CONSTANT((gint) G_FILE_ERROR_NOENT); + PRINT_CONSTANT((gint) G_FILE_ERROR_NOMEM); + PRINT_CONSTANT((gint) G_FILE_ERROR_NOSPC); + PRINT_CONSTANT((gint) G_FILE_ERROR_NOSYS); + PRINT_CONSTANT((gint) G_FILE_ERROR_NOTDIR); + PRINT_CONSTANT((gint) G_FILE_ERROR_NXIO); + PRINT_CONSTANT((gint) G_FILE_ERROR_PERM); + PRINT_CONSTANT((gint) G_FILE_ERROR_PIPE); + PRINT_CONSTANT((gint) G_FILE_ERROR_ROFS); + PRINT_CONSTANT((gint) G_FILE_ERROR_TXTBSY); + PRINT_CONSTANT((guint) G_FILE_SET_CONTENTS_CONSISTENT); + PRINT_CONSTANT((guint) G_FILE_SET_CONTENTS_DURABLE); + PRINT_CONSTANT((guint) G_FILE_SET_CONTENTS_NONE); + PRINT_CONSTANT((guint) G_FILE_SET_CONTENTS_ONLY_EXISTING); + PRINT_CONSTANT((guint) G_FILE_TEST_EXISTS); + PRINT_CONSTANT((guint) G_FILE_TEST_IS_DIR); + PRINT_CONSTANT((guint) G_FILE_TEST_IS_EXECUTABLE); + PRINT_CONSTANT((guint) G_FILE_TEST_IS_REGULAR); + PRINT_CONSTANT((guint) G_FILE_TEST_IS_SYMLINK); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_BITS); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_DEFAULT); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_IEC_UNITS); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_LONG_FORMAT); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_ONLY_UNIT); + PRINT_CONSTANT((guint) G_FORMAT_SIZE_ONLY_VALUE); + PRINT_CONSTANT((guint) G_HOOK_FLAG_ACTIVE); + PRINT_CONSTANT((guint) G_HOOK_FLAG_IN_CALL); + PRINT_CONSTANT((guint) G_HOOK_FLAG_MASK); + PRINT_CONSTANT(G_HOOK_FLAG_USER_SHIFT); + PRINT_CONSTANT(G_IEEE754_DOUBLE_BIAS); + PRINT_CONSTANT(G_IEEE754_FLOAT_BIAS); + PRINT_CONSTANT((gint) G_IN_ORDER); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_FAILED); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_FBIG); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_INVAL); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_IO); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_ISDIR); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_NOSPC); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_NXIO); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_OVERFLOW); + PRINT_CONSTANT((gint) G_IO_CHANNEL_ERROR_PIPE); + PRINT_CONSTANT((guint) G_IO_ERR); + PRINT_CONSTANT((gint) G_IO_ERROR_AGAIN); + PRINT_CONSTANT((gint) G_IO_ERROR_INVAL); + PRINT_CONSTANT((gint) G_IO_ERROR_NONE); + PRINT_CONSTANT((gint) G_IO_ERROR_UNKNOWN); + PRINT_CONSTANT((guint) G_IO_FLAG_APPEND); + PRINT_CONSTANT((guint) G_IO_FLAG_GET_MASK); + PRINT_CONSTANT((guint) G_IO_FLAG_IS_READABLE); + PRINT_CONSTANT((guint) G_IO_FLAG_IS_SEEKABLE); + PRINT_CONSTANT((guint) G_IO_FLAG_IS_WRITABLE); + PRINT_CONSTANT((guint) G_IO_FLAG_IS_WRITEABLE); + PRINT_CONSTANT((guint) G_IO_FLAG_MASK); + PRINT_CONSTANT((guint) G_IO_FLAG_NONBLOCK); + PRINT_CONSTANT((guint) G_IO_FLAG_NONE); + PRINT_CONSTANT((guint) G_IO_FLAG_SET_MASK); + PRINT_CONSTANT((guint) G_IO_HUP); + PRINT_CONSTANT((guint) G_IO_IN); + PRINT_CONSTANT((guint) G_IO_NVAL); + PRINT_CONSTANT((guint) G_IO_OUT); + PRINT_CONSTANT((guint) G_IO_PRI); + PRINT_CONSTANT((gint) G_IO_STATUS_AGAIN); + PRINT_CONSTANT((gint) G_IO_STATUS_EOF); + PRINT_CONSTANT((gint) G_IO_STATUS_ERROR); + PRINT_CONSTANT((gint) G_IO_STATUS_NORMAL); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_GROUP); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_ACTIONS); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_CATEGORIES); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_COMMENT); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_EXEC); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_HIDDEN); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_ICON); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_MIME_TYPE); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_NAME); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_PATH); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_TERMINAL); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_TRY_EXEC); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_TYPE); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_URL); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_KEY_VERSION); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_TYPE_APPLICATION); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_TYPE_DIRECTORY); + PRINT_CONSTANT(G_KEY_FILE_DESKTOP_TYPE_LINK); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_GROUP_NOT_FOUND); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_INVALID_VALUE); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_KEY_NOT_FOUND); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_NOT_FOUND); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_PARSE); + PRINT_CONSTANT((gint) G_KEY_FILE_ERROR_UNKNOWN_ENCODING); + PRINT_CONSTANT((guint) G_KEY_FILE_KEEP_COMMENTS); + PRINT_CONSTANT((guint) G_KEY_FILE_KEEP_TRANSLATIONS); + PRINT_CONSTANT((guint) G_KEY_FILE_NONE); + PRINT_CONSTANT((gint) G_LEVEL_ORDER); + PRINT_CONSTANT(G_LITTLE_ENDIAN); + PRINT_CONSTANT(G_LN10); + PRINT_CONSTANT(G_LN2); + PRINT_CONSTANT(G_LOG_2_BASE_10); + PRINT_CONSTANT(G_LOG_FATAL_MASK); + PRINT_CONSTANT((guint) G_LOG_FLAG_FATAL); + PRINT_CONSTANT((guint) G_LOG_FLAG_RECURSION); + PRINT_CONSTANT((guint) G_LOG_LEVEL_CRITICAL); + PRINT_CONSTANT((guint) G_LOG_LEVEL_DEBUG); + PRINT_CONSTANT((guint) G_LOG_LEVEL_ERROR); + PRINT_CONSTANT((guint) G_LOG_LEVEL_INFO); + PRINT_CONSTANT((guint) G_LOG_LEVEL_MASK); + PRINT_CONSTANT((guint) G_LOG_LEVEL_MESSAGE); + PRINT_CONSTANT(G_LOG_LEVEL_USER_SHIFT); + PRINT_CONSTANT((guint) G_LOG_LEVEL_WARNING); + PRINT_CONSTANT((gint) G_LOG_WRITER_HANDLED); + PRINT_CONSTANT((gint) G_LOG_WRITER_UNHANDLED); + PRINT_CONSTANT((guint) G_MAIN_CONTEXT_FLAGS_NONE); + PRINT_CONSTANT((guint) G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_BOOLEAN); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_INVALID); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_OPTIONAL); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_STRDUP); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_STRING); + PRINT_CONSTANT((guint) G_MARKUP_COLLECT_TRISTATE); + PRINT_CONSTANT((guint) G_MARKUP_DEFAULT_FLAGS); + PRINT_CONSTANT((guint) G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_BAD_UTF8); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_EMPTY); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_INVALID_CONTENT); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_MISSING_ATTRIBUTE); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_PARSE); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE); + PRINT_CONSTANT((gint) G_MARKUP_ERROR_UNKNOWN_ELEMENT); + PRINT_CONSTANT((guint) G_MARKUP_IGNORE_QUALIFIED); + PRINT_CONSTANT((guint) G_MARKUP_PREFIX_ERROR_POSITION); + PRINT_CONSTANT((guint) G_MARKUP_TREAT_CDATA_AS_TEXT); + PRINT_CONSTANT((gint) G_NORMALIZE_ALL); + PRINT_CONSTANT((gint) G_NORMALIZE_ALL_COMPOSE); + PRINT_CONSTANT((gint) G_NORMALIZE_DEFAULT); + PRINT_CONSTANT((gint) G_NORMALIZE_DEFAULT_COMPOSE); + PRINT_CONSTANT((gint) G_NORMALIZE_NFC); + PRINT_CONSTANT((gint) G_NORMALIZE_NFD); + PRINT_CONSTANT((gint) G_NORMALIZE_NFKC); + PRINT_CONSTANT((gint) G_NORMALIZE_NFKD); + PRINT_CONSTANT((gint) G_NUMBER_PARSER_ERROR_INVALID); + PRINT_CONSTANT((gint) G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS); + PRINT_CONSTANT((gint) G_ONCE_STATUS_NOTCALLED); + PRINT_CONSTANT((gint) G_ONCE_STATUS_PROGRESS); + PRINT_CONSTANT((gint) G_ONCE_STATUS_READY); + PRINT_CONSTANT((gint) G_OPTION_ARG_CALLBACK); + PRINT_CONSTANT((gint) G_OPTION_ARG_DOUBLE); + PRINT_CONSTANT((gint) G_OPTION_ARG_FILENAME); + PRINT_CONSTANT((gint) G_OPTION_ARG_FILENAME_ARRAY); + PRINT_CONSTANT((gint) G_OPTION_ARG_INT); + PRINT_CONSTANT((gint) G_OPTION_ARG_INT64); + PRINT_CONSTANT((gint) G_OPTION_ARG_NONE); + PRINT_CONSTANT((gint) G_OPTION_ARG_STRING); + PRINT_CONSTANT((gint) G_OPTION_ARG_STRING_ARRAY); + PRINT_CONSTANT((gint) G_OPTION_ERROR_BAD_VALUE); + PRINT_CONSTANT((gint) G_OPTION_ERROR_FAILED); + PRINT_CONSTANT((gint) G_OPTION_ERROR_UNKNOWN_OPTION); + PRINT_CONSTANT((guint) G_OPTION_FLAG_FILENAME); + PRINT_CONSTANT((guint) G_OPTION_FLAG_HIDDEN); + PRINT_CONSTANT((guint) G_OPTION_FLAG_IN_MAIN); + PRINT_CONSTANT((guint) G_OPTION_FLAG_NOALIAS); + PRINT_CONSTANT((guint) G_OPTION_FLAG_NONE); + PRINT_CONSTANT((guint) G_OPTION_FLAG_NO_ARG); + PRINT_CONSTANT((guint) G_OPTION_FLAG_OPTIONAL_ARG); + PRINT_CONSTANT((guint) G_OPTION_FLAG_REVERSE); + PRINT_CONSTANT(G_OPTION_REMAINING); + PRINT_CONSTANT(G_PDP_ENDIAN); + PRINT_CONSTANT(G_PI); + PRINT_CONSTANT(G_PI_2); + PRINT_CONSTANT(G_PI_4); + PRINT_CONSTANT((gint) G_POST_ORDER); + PRINT_CONSTANT((gint) G_PRE_ORDER); + PRINT_CONSTANT(G_PRIORITY_DEFAULT); + PRINT_CONSTANT(G_PRIORITY_DEFAULT_IDLE); + PRINT_CONSTANT(G_PRIORITY_HIGH); + PRINT_CONSTANT(G_PRIORITY_HIGH_IDLE); + PRINT_CONSTANT(G_PRIORITY_LOW); + PRINT_CONSTANT((guint) G_REGEX_ANCHORED); + PRINT_CONSTANT((guint) G_REGEX_BSR_ANYCRLF); + PRINT_CONSTANT((guint) G_REGEX_CASELESS); + PRINT_CONSTANT((guint) G_REGEX_DEFAULT); + PRINT_CONSTANT((guint) G_REGEX_DOLLAR_ENDONLY); + PRINT_CONSTANT((guint) G_REGEX_DOTALL); + PRINT_CONSTANT((guint) G_REGEX_DUPNAMES); + PRINT_CONSTANT((gint) G_REGEX_ERROR_ASSERTION_EXPECTED); + PRINT_CONSTANT((gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN); + PRINT_CONSTANT((gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED); + PRINT_CONSTANT((gint) G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_COMPILE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_DEFINE_REPETION); + PRINT_CONSTANT((gint) G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME); + PRINT_CONSTANT((gint) G_REGEX_ERROR_EXPRESSION_TOO_LARGE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME); + PRINT_CONSTANT((gint) G_REGEX_ERROR_HEX_CODE_TOO_LARGE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INFINITE_LOOP); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INTERNAL); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_CONDITION); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_CONTROL_CHAR); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_DATA_CHARACTER); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_OCTAL_VALUE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MALFORMED_CONDITION); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MALFORMED_PROPERTY); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MATCH); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MEMORY_ERROR); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_BACK_REFERENCE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_CONTROL_CHAR); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_DIGIT); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_NAME); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME); + PRINT_CONSTANT((gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR); + PRINT_CONSTANT((gint) G_REGEX_ERROR_NAME_TOO_LONG); + PRINT_CONSTANT((gint) G_REGEX_ERROR_NOTHING_TO_REPEAT); + PRINT_CONSTANT((gint) G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_NUMBER_TOO_BIG); + PRINT_CONSTANT((gint) G_REGEX_ERROR_OPTIMIZE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED); + PRINT_CONSTANT((gint) G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER); + PRINT_CONSTANT((gint) G_REGEX_ERROR_QUANTIFIER_TOO_BIG); + PRINT_CONSTANT((gint) G_REGEX_ERROR_RANGE_OUT_OF_ORDER); + PRINT_CONSTANT((gint) G_REGEX_ERROR_REPLACE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND); + PRINT_CONSTANT((gint) G_REGEX_ERROR_STRAY_BACKSLASH); + PRINT_CONSTANT((gint) G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG); + PRINT_CONSTANT((gint) G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES); + PRINT_CONSTANT((gint) G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES); + PRINT_CONSTANT((gint) G_REGEX_ERROR_TOO_MANY_SUBPATTERNS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNKNOWN_PROPERTY); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNMATCHED_PARENTHESIS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNRECOGNIZED_CHARACTER); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNRECOGNIZED_ESCAPE); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS); + PRINT_CONSTANT((gint) G_REGEX_ERROR_UNTERMINATED_COMMENT); + PRINT_CONSTANT((gint) G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND); + PRINT_CONSTANT((guint) G_REGEX_EXTENDED); + PRINT_CONSTANT((guint) G_REGEX_FIRSTLINE); + PRINT_CONSTANT((guint) G_REGEX_JAVASCRIPT_COMPAT); + PRINT_CONSTANT((guint) G_REGEX_MATCH_ANCHORED); + PRINT_CONSTANT((guint) G_REGEX_MATCH_BSR_ANY); + PRINT_CONSTANT((guint) G_REGEX_MATCH_BSR_ANYCRLF); + PRINT_CONSTANT((guint) G_REGEX_MATCH_DEFAULT); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NEWLINE_ANY); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NEWLINE_ANYCRLF); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NEWLINE_CR); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NEWLINE_CRLF); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NEWLINE_LF); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NOTBOL); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NOTEMPTY); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NOTEMPTY_ATSTART); + PRINT_CONSTANT((guint) G_REGEX_MATCH_NOTEOL); + PRINT_CONSTANT((guint) G_REGEX_MATCH_PARTIAL); + PRINT_CONSTANT((guint) G_REGEX_MATCH_PARTIAL_HARD); + PRINT_CONSTANT((guint) G_REGEX_MATCH_PARTIAL_SOFT); + PRINT_CONSTANT((guint) G_REGEX_MULTILINE); + PRINT_CONSTANT((guint) G_REGEX_NEWLINE_ANYCRLF); + PRINT_CONSTANT((guint) G_REGEX_NEWLINE_CR); + PRINT_CONSTANT((guint) G_REGEX_NEWLINE_CRLF); + PRINT_CONSTANT((guint) G_REGEX_NEWLINE_LF); + PRINT_CONSTANT((guint) G_REGEX_NO_AUTO_CAPTURE); + PRINT_CONSTANT((guint) G_REGEX_OPTIMIZE); + PRINT_CONSTANT((guint) G_REGEX_RAW); + PRINT_CONSTANT((guint) G_REGEX_UNGREEDY); + PRINT_CONSTANT((gint) G_SEEK_CUR); + PRINT_CONSTANT((gint) G_SEEK_END); + PRINT_CONSTANT((gint) G_SEEK_SET); + PRINT_CONSTANT((gint) G_SHELL_ERROR_BAD_QUOTING); + PRINT_CONSTANT((gint) G_SHELL_ERROR_EMPTY_STRING); + PRINT_CONSTANT((gint) G_SHELL_ERROR_FAILED); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_ALWAYS_MALLOC); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_BYPASS_MAGAZINES); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_CHUNK_SIZES); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_COLOR_INCREMENT); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_CONTENTION_COUNTER); + PRINT_CONSTANT((gint) G_SLICE_CONFIG_WORKING_SET_MSECS); + PRINT_CONSTANT(G_SOURCE_CONTINUE); + PRINT_CONSTANT(G_SOURCE_REMOVE); + PRINT_CONSTANT((guint) G_SPAWN_CHILD_INHERITS_STDERR); + PRINT_CONSTANT((guint) G_SPAWN_CHILD_INHERITS_STDIN); + PRINT_CONSTANT((guint) G_SPAWN_CHILD_INHERITS_STDOUT); + PRINT_CONSTANT((guint) G_SPAWN_CLOEXEC_PIPES); + PRINT_CONSTANT((guint) G_SPAWN_DEFAULT); + PRINT_CONSTANT((guint) G_SPAWN_DO_NOT_REAP_CHILD); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_2BIG); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_ACCES); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_CHDIR); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_FAILED); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_FORK); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_INVAL); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_IO); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_ISDIR); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_LIBBAD); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_LOOP); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_MFILE); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NAMETOOLONG); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NFILE); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NOENT); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NOEXEC); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NOMEM); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_NOTDIR); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_PERM); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_READ); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_TOO_BIG); + PRINT_CONSTANT((gint) G_SPAWN_ERROR_TXTBUSY); + PRINT_CONSTANT((guint) G_SPAWN_FILE_AND_ARGV_ZERO); + PRINT_CONSTANT((guint) G_SPAWN_LEAVE_DESCRIPTORS_OPEN); + PRINT_CONSTANT((guint) G_SPAWN_SEARCH_PATH); + PRINT_CONSTANT((guint) G_SPAWN_SEARCH_PATH_FROM_ENVP); + PRINT_CONSTANT((guint) G_SPAWN_STDERR_TO_DEV_NULL); + PRINT_CONSTANT((guint) G_SPAWN_STDIN_FROM_DEV_NULL); + PRINT_CONSTANT((guint) G_SPAWN_STDOUT_TO_DEV_NULL); + PRINT_CONSTANT(G_SQRT2); + PRINT_CONSTANT(G_STR_DELIMITERS); + PRINT_CONSTANT((gint) G_TEST_BUILT); + PRINT_CONSTANT((gint) G_TEST_DIST); + PRINT_CONSTANT((gint) G_TEST_LOG_ERROR); + PRINT_CONSTANT((gint) G_TEST_LOG_LIST_CASE); + PRINT_CONSTANT((gint) G_TEST_LOG_MAX_RESULT); + PRINT_CONSTANT((gint) G_TEST_LOG_MESSAGE); + PRINT_CONSTANT((gint) G_TEST_LOG_MIN_RESULT); + PRINT_CONSTANT((gint) G_TEST_LOG_NONE); + PRINT_CONSTANT((gint) G_TEST_LOG_SKIP_CASE); + PRINT_CONSTANT((gint) G_TEST_LOG_START_BINARY); + PRINT_CONSTANT((gint) G_TEST_LOG_START_CASE); + PRINT_CONSTANT((gint) G_TEST_LOG_START_SUITE); + PRINT_CONSTANT((gint) G_TEST_LOG_STOP_CASE); + PRINT_CONSTANT((gint) G_TEST_LOG_STOP_SUITE); + PRINT_CONSTANT(G_TEST_OPTION_ISOLATE_DIRS); + PRINT_CONSTANT((gint) G_TEST_RUN_FAILURE); + PRINT_CONSTANT((gint) G_TEST_RUN_INCOMPLETE); + PRINT_CONSTANT((gint) G_TEST_RUN_SKIPPED); + PRINT_CONSTANT((gint) G_TEST_RUN_SUCCESS); + PRINT_CONSTANT((guint) G_TEST_SUBPROCESS_DEFAULT); + PRINT_CONSTANT((guint) G_TEST_SUBPROCESS_INHERIT_STDERR); + PRINT_CONSTANT((guint) G_TEST_SUBPROCESS_INHERIT_STDIN); + PRINT_CONSTANT((guint) G_TEST_SUBPROCESS_INHERIT_STDOUT); + PRINT_CONSTANT((guint) G_TEST_TRAP_DEFAULT); + PRINT_CONSTANT((guint) G_TEST_TRAP_INHERIT_STDIN); + PRINT_CONSTANT((guint) G_TEST_TRAP_SILENCE_STDERR); + PRINT_CONSTANT((guint) G_TEST_TRAP_SILENCE_STDOUT); + PRINT_CONSTANT((gint) G_THREAD_ERROR_AGAIN); + PRINT_CONSTANT(G_TIME_SPAN_DAY); + PRINT_CONSTANT(G_TIME_SPAN_HOUR); + PRINT_CONSTANT(G_TIME_SPAN_MILLISECOND); + PRINT_CONSTANT(G_TIME_SPAN_MINUTE); + PRINT_CONSTANT(G_TIME_SPAN_SECOND); + PRINT_CONSTANT((gint) G_TIME_TYPE_DAYLIGHT); + PRINT_CONSTANT((gint) G_TIME_TYPE_STANDARD); + PRINT_CONSTANT((gint) G_TIME_TYPE_UNIVERSAL); + PRINT_CONSTANT((gint) G_TOKEN_BINARY); + PRINT_CONSTANT((gint) G_TOKEN_CHAR); + PRINT_CONSTANT((gint) G_TOKEN_COMMA); + PRINT_CONSTANT((gint) G_TOKEN_COMMENT_MULTI); + PRINT_CONSTANT((gint) G_TOKEN_COMMENT_SINGLE); + PRINT_CONSTANT((gint) G_TOKEN_EOF); + PRINT_CONSTANT((gint) G_TOKEN_EQUAL_SIGN); + PRINT_CONSTANT((gint) G_TOKEN_ERROR); + PRINT_CONSTANT((gint) G_TOKEN_FLOAT); + PRINT_CONSTANT((gint) G_TOKEN_HEX); + PRINT_CONSTANT((gint) G_TOKEN_IDENTIFIER); + PRINT_CONSTANT((gint) G_TOKEN_IDENTIFIER_NULL); + PRINT_CONSTANT((gint) G_TOKEN_INT); + PRINT_CONSTANT((gint) G_TOKEN_LEFT_BRACE); + PRINT_CONSTANT((gint) G_TOKEN_LEFT_CURLY); + PRINT_CONSTANT((gint) G_TOKEN_LEFT_PAREN); + PRINT_CONSTANT((gint) G_TOKEN_NONE); + PRINT_CONSTANT((gint) G_TOKEN_OCTAL); + PRINT_CONSTANT((gint) G_TOKEN_RIGHT_BRACE); + PRINT_CONSTANT((gint) G_TOKEN_RIGHT_CURLY); + PRINT_CONSTANT((gint) G_TOKEN_RIGHT_PAREN); + PRINT_CONSTANT((gint) G_TOKEN_STRING); + PRINT_CONSTANT((gint) G_TOKEN_SYMBOL); + PRINT_CONSTANT((guint) G_TRAVERSE_ALL); + PRINT_CONSTANT((guint) G_TRAVERSE_LEAFS); + PRINT_CONSTANT((guint) G_TRAVERSE_LEAVES); + PRINT_CONSTANT((guint) G_TRAVERSE_MASK); + PRINT_CONSTANT((guint) G_TRAVERSE_NON_LEAFS); + PRINT_CONSTANT((guint) G_TRAVERSE_NON_LEAVES); + PRINT_CONSTANT(G_UNICHAR_MAX_DECOMPOSITION_LENGTH); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_AFTER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_ALPHABETIC); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_AMBIGUOUS); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_BEFORE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_BEFORE_AND_AFTER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CARRIAGE_RETURN); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CLOSE_PARANTHESIS); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CLOSE_PARENTHESIS); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CLOSE_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_COMBINING_MARK); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_COMPLEX_CONTEXT); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_CONTINGENT); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_EMOJI_BASE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_EMOJI_MODIFIER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_EXCLAMATION); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HANGUL_LV_SYLLABLE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HANGUL_L_JAMO); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HANGUL_T_JAMO); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HANGUL_V_JAMO); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HEBREW_LETTER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_HYPHEN); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_IDEOGRAPHIC); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_INFIX_SEPARATOR); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_INSEPARABLE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_LINE_FEED); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_MANDATORY); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_NEXT_LINE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_NON_BREAKING_GLUE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_NON_STARTER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_NUMERIC); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_OPEN_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_POSTFIX); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_PREFIX); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_QUOTATION); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_REGIONAL_INDICATOR); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_SPACE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_SURROGATE); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_SYMBOL); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_UNKNOWN); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_WORD_JOINER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_ZERO_WIDTH_JOINER); + PRINT_CONSTANT((gint) G_UNICODE_BREAK_ZERO_WIDTH_SPACE); + PRINT_CONSTANT((gint) G_UNICODE_CLOSE_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_CONNECT_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_CONTROL); + PRINT_CONSTANT((gint) G_UNICODE_CURRENCY_SYMBOL); + PRINT_CONSTANT((gint) G_UNICODE_DASH_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_DECIMAL_NUMBER); + PRINT_CONSTANT((gint) G_UNICODE_ENCLOSING_MARK); + PRINT_CONSTANT((gint) G_UNICODE_FINAL_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_FORMAT); + PRINT_CONSTANT((gint) G_UNICODE_INITIAL_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_LETTER_NUMBER); + PRINT_CONSTANT((gint) G_UNICODE_LINE_SEPARATOR); + PRINT_CONSTANT((gint) G_UNICODE_LOWERCASE_LETTER); + PRINT_CONSTANT((gint) G_UNICODE_MATH_SYMBOL); + PRINT_CONSTANT((gint) G_UNICODE_MODIFIER_LETTER); + PRINT_CONSTANT((gint) G_UNICODE_MODIFIER_SYMBOL); + PRINT_CONSTANT((gint) G_UNICODE_NON_SPACING_MARK); + PRINT_CONSTANT((gint) G_UNICODE_OPEN_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_OTHER_LETTER); + PRINT_CONSTANT((gint) G_UNICODE_OTHER_NUMBER); + PRINT_CONSTANT((gint) G_UNICODE_OTHER_PUNCTUATION); + PRINT_CONSTANT((gint) G_UNICODE_OTHER_SYMBOL); + PRINT_CONSTANT((gint) G_UNICODE_PARAGRAPH_SEPARATOR); + PRINT_CONSTANT((gint) G_UNICODE_PRIVATE_USE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ADLAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_AHOM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ARABIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ARMENIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_AVESTAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BALINESE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BAMUM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BASSA_VAH); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BATAK); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BENGALI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BHAIKSUKI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BOPOMOFO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BRAHMI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BRAILLE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BUGINESE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_BUHID); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CARIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CHAKMA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CHAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CHEROKEE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CHORASMIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_COMMON); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_COPTIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CUNEIFORM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CYPRIOT); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CYPRO_MINOAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_CYRILLIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_DESERET); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_DEVANAGARI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_DIVES_AKURU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_DOGRA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_DUPLOYAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ELBASAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ELYMAIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ETHIOPIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GEORGIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GLAGOLITIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GOTHIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GRANTHA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GREEK); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GUJARATI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GUNJALA_GONDI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_GURMUKHI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HANGUL); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HANIFI_ROHINGYA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HANUNOO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HATRAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HEBREW); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_HIRAGANA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_INHERITED); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_INVALID_CODE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_JAVANESE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KAITHI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KANNADA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KATAKANA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KAWI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KAYAH_LI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KHAROSHTHI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KHMER); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KHOJKI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_KHUDAWADI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LAO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LATIN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LEPCHA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LIMBU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LINEAR_A); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LINEAR_B); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LISU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LYCIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_LYDIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MAHAJANI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MAKASAR); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MALAYALAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MANDAIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MANICHAEAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MARCHEN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MASARAM_GONDI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MATH); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MEDEFAIDRIN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MEETEI_MAYEK); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MENDE_KIKAKUI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MEROITIC_CURSIVE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MIAO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MODI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MONGOLIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MRO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MULTANI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_MYANMAR); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NABATAEAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NAG_MUNDARI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NANDINAGARI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NEWA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NEW_TAI_LUE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NKO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NUSHU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OGHAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_HUNGARIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_ITALIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_PERMIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_PERSIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_SOGDIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_TURKIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OLD_UYGHUR); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OL_CHIKI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ORIYA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OSAGE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_OSMANYA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PAHAWH_HMONG); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PALMYRENE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PAU_CIN_HAU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PHAGS_PA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PHOENICIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_PSALTER_PAHLAVI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_REJANG); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_RUNIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SAMARITAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SAURASHTRA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SHARADA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SHAVIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SIDDHAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SIGNWRITING); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SINHALA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SOGDIAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SORA_SOMPENG); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SOYOMBO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SUNDANESE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SYLOTI_NAGRI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_SYRIAC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAGALOG); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAGBANWA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAI_LE); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAI_THAM); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAI_VIET); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAKRI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TAMIL); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TANGSA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TANGUT); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TELUGU); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_THAANA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_THAI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TIBETAN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TIFINAGH); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TIRHUTA); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_TOTO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_UGARITIC); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_UNKNOWN); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_VAI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_VITHKUQI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_WANCHO); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_WARANG_CITI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_YEZIDI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_YI); + PRINT_CONSTANT((gint) G_UNICODE_SCRIPT_ZANABAZAR_SQUARE); + PRINT_CONSTANT((gint) G_UNICODE_SPACE_SEPARATOR); + PRINT_CONSTANT((gint) G_UNICODE_SPACING_MARK); + PRINT_CONSTANT((gint) G_UNICODE_SURROGATE); + PRINT_CONSTANT((gint) G_UNICODE_TITLECASE_LETTER); + PRINT_CONSTANT((gint) G_UNICODE_UNASSIGNED); + PRINT_CONSTANT((gint) G_UNICODE_UPPERCASE_LETTER); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_AUTH_PARAMS); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_FRAGMENT); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_HOST); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_PASSWORD); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_PATH); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_PORT); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_QUERY); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_SCHEME); + PRINT_CONSTANT((gint) G_URI_ERROR_BAD_USER); + PRINT_CONSTANT((gint) G_URI_ERROR_FAILED); + PRINT_CONSTANT((guint) G_URI_FLAGS_ENCODED); + PRINT_CONSTANT((guint) G_URI_FLAGS_ENCODED_FRAGMENT); + PRINT_CONSTANT((guint) G_URI_FLAGS_ENCODED_PATH); + PRINT_CONSTANT((guint) G_URI_FLAGS_ENCODED_QUERY); + PRINT_CONSTANT((guint) G_URI_FLAGS_HAS_AUTH_PARAMS); + PRINT_CONSTANT((guint) G_URI_FLAGS_HAS_PASSWORD); + PRINT_CONSTANT((guint) G_URI_FLAGS_NONE); + PRINT_CONSTANT((guint) G_URI_FLAGS_NON_DNS); + PRINT_CONSTANT((guint) G_URI_FLAGS_PARSE_RELAXED); + PRINT_CONSTANT((guint) G_URI_FLAGS_SCHEME_NORMALIZE); + PRINT_CONSTANT((guint) G_URI_HIDE_AUTH_PARAMS); + PRINT_CONSTANT((guint) G_URI_HIDE_FRAGMENT); + PRINT_CONSTANT((guint) G_URI_HIDE_NONE); + PRINT_CONSTANT((guint) G_URI_HIDE_PASSWORD); + PRINT_CONSTANT((guint) G_URI_HIDE_QUERY); + PRINT_CONSTANT((guint) G_URI_HIDE_USERINFO); + PRINT_CONSTANT((guint) G_URI_PARAMS_CASE_INSENSITIVE); + PRINT_CONSTANT((guint) G_URI_PARAMS_NONE); + PRINT_CONSTANT((guint) G_URI_PARAMS_PARSE_RELAXED); + PRINT_CONSTANT((guint) G_URI_PARAMS_WWW_FORM); + PRINT_CONSTANT(G_URI_RESERVED_CHARS_GENERIC_DELIMITERS); + PRINT_CONSTANT(G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS); + PRINT_CONSTANT(G_USEC_PER_SEC); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_DESKTOP); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_DOCUMENTS); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_DOWNLOAD); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_MUSIC); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_PICTURES); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_PUBLIC_SHARE); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_TEMPLATES); + PRINT_CONSTANT((gint) G_USER_DIRECTORY_VIDEOS); + PRINT_CONSTANT((gint) G_USER_N_DIRECTORIES); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_ARRAY); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_BOOLEAN); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_BYTE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_DICT_ENTRY); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_DOUBLE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_HANDLE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_INT16); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_INT32); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_INT64); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_MAYBE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_OBJECT_PATH); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_SIGNATURE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_STRING); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_TUPLE); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_UINT16); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_UINT32); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_UINT64); + PRINT_CONSTANT((gint) G_VARIANT_CLASS_VARIANT); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_FAILED); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INVALID_CHARACTER); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_RECURSION); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_TYPE_ERROR); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT); + PRINT_CONSTANT((gint) G_VARIANT_PARSE_ERROR_VALUE_EXPECTED); + PRINT_CONSTANT(G_WIN32_MSG_HANDLE); + return 0; +} diff --git a/tests/layout.c b/tests/layout.c new file mode 100644 index 0000000..4b8a1f9 --- /dev/null +++ b/tests/layout.c @@ -0,0 +1,121 @@ +// This file was generated by gir (https://github.com/gtk-rs/gir) +// from gir-files (https://github.com/gtk-rs/gir-files) +// DO NOT EDIT + +#include "manual.h" +#include +#include + +int main() { + printf("%s;%zu;%zu\n", "GArray", sizeof(GArray), alignof(GArray)); + printf("%s;%zu;%zu\n", "GAsciiType", sizeof(GAsciiType), alignof(GAsciiType)); + printf("%s;%zu;%zu\n", "GBookmarkFileError", sizeof(GBookmarkFileError), alignof(GBookmarkFileError)); + printf("%s;%zu;%zu\n", "GByteArray", sizeof(GByteArray), alignof(GByteArray)); + printf("%s;%zu;%zu\n", "GChecksumType", sizeof(GChecksumType), alignof(GChecksumType)); + printf("%s;%zu;%zu\n", "GCond", sizeof(GCond), alignof(GCond)); + printf("%s;%zu;%zu\n", "GConvertError", sizeof(GConvertError), alignof(GConvertError)); + printf("%s;%zu;%zu\n", "GDate", sizeof(GDate), alignof(GDate)); + printf("%s;%zu;%zu\n", "GDateDMY", sizeof(GDateDMY), alignof(GDateDMY)); + printf("%s;%zu;%zu\n", "GDateDay", sizeof(GDateDay), alignof(GDateDay)); + printf("%s;%zu;%zu\n", "GDateMonth", sizeof(GDateMonth), alignof(GDateMonth)); + printf("%s;%zu;%zu\n", "GDateWeekday", sizeof(GDateWeekday), alignof(GDateWeekday)); + printf("%s;%zu;%zu\n", "GDateYear", sizeof(GDateYear), alignof(GDateYear)); + printf("%s;%zu;%zu\n", "GDebugKey", sizeof(GDebugKey), alignof(GDebugKey)); + printf("%s;%zu;%zu\n", "GError", sizeof(GError), alignof(GError)); + printf("%s;%zu;%zu\n", "GErrorType", sizeof(GErrorType), alignof(GErrorType)); + printf("%s;%zu;%zu\n", "GFileError", sizeof(GFileError), alignof(GFileError)); + printf("%s;%zu;%zu\n", "GFileSetContentsFlags", sizeof(GFileSetContentsFlags), alignof(GFileSetContentsFlags)); + printf("%s;%zu;%zu\n", "GFileTest", sizeof(GFileTest), alignof(GFileTest)); + printf("%s;%zu;%zu\n", "GFormatSizeFlags", sizeof(GFormatSizeFlags), alignof(GFormatSizeFlags)); + printf("%s;%zu;%zu\n", "GHashTableIter", sizeof(GHashTableIter), alignof(GHashTableIter)); + printf("%s;%zu;%zu\n", "GHook", sizeof(GHook), alignof(GHook)); + printf("%s;%zu;%zu\n", "GHookFlagMask", sizeof(GHookFlagMask), alignof(GHookFlagMask)); + printf("%s;%zu;%zu\n", "GHookList", sizeof(GHookList), alignof(GHookList)); + printf("%s;%zu;%zu\n", "GIOChannelError", sizeof(GIOChannelError), alignof(GIOChannelError)); + printf("%s;%zu;%zu\n", "GIOCondition", sizeof(GIOCondition), alignof(GIOCondition)); + printf("%s;%zu;%zu\n", "GIOError", sizeof(GIOError), alignof(GIOError)); + printf("%s;%zu;%zu\n", "GIOFlags", sizeof(GIOFlags), alignof(GIOFlags)); + printf("%s;%zu;%zu\n", "GIOFuncs", sizeof(GIOFuncs), alignof(GIOFuncs)); + printf("%s;%zu;%zu\n", "GIOStatus", sizeof(GIOStatus), alignof(GIOStatus)); + printf("%s;%zu;%zu\n", "GKeyFileError", sizeof(GKeyFileError), alignof(GKeyFileError)); + printf("%s;%zu;%zu\n", "GKeyFileFlags", sizeof(GKeyFileFlags), alignof(GKeyFileFlags)); + printf("%s;%zu;%zu\n", "GList", sizeof(GList), alignof(GList)); + printf("%s;%zu;%zu\n", "GLogField", sizeof(GLogField), alignof(GLogField)); + printf("%s;%zu;%zu\n", "GLogLevelFlags", sizeof(GLogLevelFlags), alignof(GLogLevelFlags)); + printf("%s;%zu;%zu\n", "GLogWriterOutput", sizeof(GLogWriterOutput), alignof(GLogWriterOutput)); + printf("%s;%zu;%zu\n", "GMainContextFlags", sizeof(GMainContextFlags), alignof(GMainContextFlags)); + printf("%s;%zu;%zu\n", "GMarkupCollectType", sizeof(GMarkupCollectType), alignof(GMarkupCollectType)); + printf("%s;%zu;%zu\n", "GMarkupError", sizeof(GMarkupError), alignof(GMarkupError)); + printf("%s;%zu;%zu\n", "GMarkupParseFlags", sizeof(GMarkupParseFlags), alignof(GMarkupParseFlags)); + printf("%s;%zu;%zu\n", "GMarkupParser", sizeof(GMarkupParser), alignof(GMarkupParser)); + printf("%s;%zu;%zu\n", "GMemVTable", sizeof(GMemVTable), alignof(GMemVTable)); + printf("%s;%zu;%zu\n", "GMutex", sizeof(GMutex), alignof(GMutex)); + printf("%s;%zu;%zu\n", "GNode", sizeof(GNode), alignof(GNode)); + printf("%s;%zu;%zu\n", "GNormalizeMode", sizeof(GNormalizeMode), alignof(GNormalizeMode)); + printf("%s;%zu;%zu\n", "GNumberParserError", sizeof(GNumberParserError), alignof(GNumberParserError)); + printf("%s;%zu;%zu\n", "GOnce", sizeof(GOnce), alignof(GOnce)); + printf("%s;%zu;%zu\n", "GOnceStatus", sizeof(GOnceStatus), alignof(GOnceStatus)); + printf("%s;%zu;%zu\n", "GOptionArg", sizeof(GOptionArg), alignof(GOptionArg)); + printf("%s;%zu;%zu\n", "GOptionEntry", sizeof(GOptionEntry), alignof(GOptionEntry)); + printf("%s;%zu;%zu\n", "GOptionError", sizeof(GOptionError), alignof(GOptionError)); + printf("%s;%zu;%zu\n", "GOptionFlags", sizeof(GOptionFlags), alignof(GOptionFlags)); + printf("%s;%zu;%zu\n", "GPathBuf", sizeof(GPathBuf), alignof(GPathBuf)); + printf("%s;%zu;%zu\n", "GPid", sizeof(GPid), alignof(GPid)); + printf("%s;%zu;%zu\n", "GPollFD", sizeof(GPollFD), alignof(GPollFD)); + printf("%s;%zu;%zu\n", "GPrivate", sizeof(GPrivate), alignof(GPrivate)); + printf("%s;%zu;%zu\n", "GPtrArray", sizeof(GPtrArray), alignof(GPtrArray)); + printf("%s;%zu;%zu\n", "GQuark", sizeof(GQuark), alignof(GQuark)); + printf("%s;%zu;%zu\n", "GQueue", sizeof(GQueue), alignof(GQueue)); + printf("%s;%zu;%zu\n", "GRWLock", sizeof(GRWLock), alignof(GRWLock)); + printf("%s;%zu;%zu\n", "GRecMutex", sizeof(GRecMutex), alignof(GRecMutex)); + printf("%s;%zu;%zu\n", "GRefString", sizeof(GRefString), alignof(GRefString)); + printf("%s;%zu;%zu\n", "GRegexCompileFlags", sizeof(GRegexCompileFlags), alignof(GRegexCompileFlags)); + printf("%s;%zu;%zu\n", "GRegexError", sizeof(GRegexError), alignof(GRegexError)); + printf("%s;%zu;%zu\n", "GRegexMatchFlags", sizeof(GRegexMatchFlags), alignof(GRegexMatchFlags)); + printf("%s;%zu;%zu\n", "GSList", sizeof(GSList), alignof(GSList)); + printf("%s;%zu;%zu\n", "GScanner", sizeof(GScanner), alignof(GScanner)); + printf("%s;%zu;%zu\n", "GSeekType", sizeof(GSeekType), alignof(GSeekType)); + printf("%s;%zu;%zu\n", "GShellError", sizeof(GShellError), alignof(GShellError)); + printf("%s;%zu;%zu\n", "GSliceConfig", sizeof(GSliceConfig), alignof(GSliceConfig)); + printf("%s;%zu;%zu\n", "GSource", sizeof(GSource), alignof(GSource)); + printf("%s;%zu;%zu\n", "GSourceCallbackFuncs", sizeof(GSourceCallbackFuncs), alignof(GSourceCallbackFuncs)); + printf("%s;%zu;%zu\n", "GSourceFuncs", sizeof(GSourceFuncs), alignof(GSourceFuncs)); + printf("%s;%zu;%zu\n", "GSpawnError", sizeof(GSpawnError), alignof(GSpawnError)); + printf("%s;%zu;%zu\n", "GSpawnFlags", sizeof(GSpawnFlags), alignof(GSpawnFlags)); + printf("%s;%zu;%zu\n", "GString", sizeof(GString), alignof(GString)); + printf("%s;%zu;%zu\n", "GStrv", sizeof(GStrv), alignof(GStrv)); + printf("%s;%zu;%zu\n", "GTestConfig", sizeof(GTestConfig), alignof(GTestConfig)); + printf("%s;%zu;%zu\n", "GTestFileType", sizeof(GTestFileType), alignof(GTestFileType)); + printf("%s;%zu;%zu\n", "GTestLogBuffer", sizeof(GTestLogBuffer), alignof(GTestLogBuffer)); + printf("%s;%zu;%zu\n", "GTestLogType", sizeof(GTestLogType), alignof(GTestLogType)); + printf("%s;%zu;%zu\n", "GTestResult", sizeof(GTestResult), alignof(GTestResult)); + printf("%s;%zu;%zu\n", "GTestSubprocessFlags", sizeof(GTestSubprocessFlags), alignof(GTestSubprocessFlags)); + printf("%s;%zu;%zu\n", "GTestTrapFlags", sizeof(GTestTrapFlags), alignof(GTestTrapFlags)); + printf("%s;%zu;%zu\n", "GThreadError", sizeof(GThreadError), alignof(GThreadError)); + printf("%s;%zu;%zu\n", "GThreadPool", sizeof(GThreadPool), alignof(GThreadPool)); + printf("%s;%zu;%zu\n", "GTime", sizeof(GTime), alignof(GTime)); + printf("%s;%zu;%zu\n", "GTimeSpan", sizeof(GTimeSpan), alignof(GTimeSpan)); + printf("%s;%zu;%zu\n", "GTimeType", sizeof(GTimeType), alignof(GTimeType)); + printf("%s;%zu;%zu\n", "GTimeVal", sizeof(GTimeVal), alignof(GTimeVal)); + printf("%s;%zu;%zu\n", "GTokenType", sizeof(GTokenType), alignof(GTokenType)); + printf("%s;%zu;%zu\n", "GTokenValue", sizeof(GTokenValue), alignof(GTokenValue)); + printf("%s;%zu;%zu\n", "GTrashStack", sizeof(GTrashStack), alignof(GTrashStack)); + printf("%s;%zu;%zu\n", "GTraverseFlags", sizeof(GTraverseFlags), alignof(GTraverseFlags)); + printf("%s;%zu;%zu\n", "GTraverseType", sizeof(GTraverseType), alignof(GTraverseType)); + printf("%s;%zu;%zu\n", "GType", sizeof(GType), alignof(GType)); + printf("%s;%zu;%zu\n", "GUnicodeBreakType", sizeof(GUnicodeBreakType), alignof(GUnicodeBreakType)); + printf("%s;%zu;%zu\n", "GUnicodeScript", sizeof(GUnicodeScript), alignof(GUnicodeScript)); + printf("%s;%zu;%zu\n", "GUnicodeType", sizeof(GUnicodeType), alignof(GUnicodeType)); + printf("%s;%zu;%zu\n", "GUriError", sizeof(GUriError), alignof(GUriError)); + printf("%s;%zu;%zu\n", "GUriFlags", sizeof(GUriFlags), alignof(GUriFlags)); + printf("%s;%zu;%zu\n", "GUriHideFlags", sizeof(GUriHideFlags), alignof(GUriHideFlags)); + printf("%s;%zu;%zu\n", "GUriParamsFlags", sizeof(GUriParamsFlags), alignof(GUriParamsFlags)); + printf("%s;%zu;%zu\n", "GUriParamsIter", sizeof(GUriParamsIter), alignof(GUriParamsIter)); + printf("%s;%zu;%zu\n", "GUserDirectory", sizeof(GUserDirectory), alignof(GUserDirectory)); + printf("%s;%zu;%zu\n", "GVariantBuilder", sizeof(GVariantBuilder), alignof(GVariantBuilder)); + printf("%s;%zu;%zu\n", "GVariantClass", sizeof(GVariantClass), alignof(GVariantClass)); + printf("%s;%zu;%zu\n", "GVariantDict", sizeof(GVariantDict), alignof(GVariantDict)); + printf("%s;%zu;%zu\n", "GVariantIter", sizeof(GVariantIter), alignof(GVariantIter)); + printf("%s;%zu;%zu\n", "GVariantParseError", sizeof(GVariantParseError), alignof(GVariantParseError)); + return 0; +} diff --git a/tests/manual.h b/tests/manual.h new file mode 100644 index 0000000..7640d2c --- /dev/null +++ b/tests/manual.h @@ -0,0 +1,9 @@ +// Feel free to edit this file, it won't be regenerated by gir generator unless removed. + +#include +#include + +// included in Gir on all platforms even though it is only present on windows +#ifndef G_WIN32_MSG_HANDLE +#define G_WIN32_MSG_HANDLE 19981206 +#endif diff --git a/versions.txt b/versions.txt new file mode 100644 index 0000000..4c4703e --- /dev/null +++ b/versions.txt @@ -0,0 +1,2 @@ +Generated by gir (https://github.com/gtk-rs/gir @ c0ef822cedca) +from gir-files (https://github.com/gtk-rs/gir-files @ 6d1aaead565c) -- 2.7.4