1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6#![allow(
7 clippy::approx_constant,
8 clippy::type_complexity,
9 clippy::unreadable_literal,
10 clippy::upper_case_acronyms
11)]
12#![cfg_attr(docsrs, feature(doc_cfg))]
13
14mod manual;
15
16pub use manual::*;
17
18#[cfg(unix)]
19#[allow(unused_imports)]
20use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
21#[allow(unused_imports)]
22use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
23#[allow(unused_imports)]
24use std::ffi::{
25 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
26};
27
28pub type gboolean = c_int;
29pub const GFALSE: c_int = 0;
30pub const GTRUE: c_int = 1;
31
32pub type gconstpointer = *const c_void;
33pub type gpointer = *mut c_void;
34
35pub type GDateDay = u8;
37pub type GDateYear = u16;
38pub type GMainContextPusher = c_void;
39pub type GMutexLocker = c_void;
40pub type GQuark = u32;
41pub type GRWLockReaderLocker = c_void;
42pub type GRWLockWriterLocker = c_void;
43pub type GRecMutexLocker = c_void;
44pub type GRefString = c_char;
45pub type GStrv = *mut *mut c_char;
46pub type GTime = i32;
47pub type GTimeSpan = i64;
48
49pub type GBookmarkFileError = c_int;
51pub const G_BOOKMARK_FILE_ERROR_INVALID_URI: GBookmarkFileError = 0;
52pub const G_BOOKMARK_FILE_ERROR_INVALID_VALUE: GBookmarkFileError = 1;
53pub const G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: GBookmarkFileError = 2;
54pub const G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: GBookmarkFileError = 3;
55pub const G_BOOKMARK_FILE_ERROR_READ: GBookmarkFileError = 4;
56pub const G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: GBookmarkFileError = 5;
57pub const G_BOOKMARK_FILE_ERROR_WRITE: GBookmarkFileError = 6;
58pub const G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: GBookmarkFileError = 7;
59
60pub type GChecksumType = c_int;
61pub const G_CHECKSUM_MD5: GChecksumType = 0;
62pub const G_CHECKSUM_SHA1: GChecksumType = 1;
63pub const G_CHECKSUM_SHA256: GChecksumType = 2;
64pub const G_CHECKSUM_SHA512: GChecksumType = 3;
65pub const G_CHECKSUM_SHA384: GChecksumType = 4;
66
67pub type GConvertError = c_int;
68pub const G_CONVERT_ERROR_NO_CONVERSION: GConvertError = 0;
69pub const G_CONVERT_ERROR_ILLEGAL_SEQUENCE: GConvertError = 1;
70pub const G_CONVERT_ERROR_FAILED: GConvertError = 2;
71pub const G_CONVERT_ERROR_PARTIAL_INPUT: GConvertError = 3;
72pub const G_CONVERT_ERROR_BAD_URI: GConvertError = 4;
73pub const G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: GConvertError = 5;
74pub const G_CONVERT_ERROR_NO_MEMORY: GConvertError = 6;
75pub const G_CONVERT_ERROR_EMBEDDED_NUL: GConvertError = 7;
76
77pub type GDateDMY = c_int;
78pub const G_DATE_DAY: GDateDMY = 0;
79pub const G_DATE_MONTH: GDateDMY = 1;
80pub const G_DATE_YEAR: GDateDMY = 2;
81
82pub type GDateMonth = c_int;
83pub const G_DATE_BAD_MONTH: GDateMonth = 0;
84pub const G_DATE_JANUARY: GDateMonth = 1;
85pub const G_DATE_FEBRUARY: GDateMonth = 2;
86pub const G_DATE_MARCH: GDateMonth = 3;
87pub const G_DATE_APRIL: GDateMonth = 4;
88pub const G_DATE_MAY: GDateMonth = 5;
89pub const G_DATE_JUNE: GDateMonth = 6;
90pub const G_DATE_JULY: GDateMonth = 7;
91pub const G_DATE_AUGUST: GDateMonth = 8;
92pub const G_DATE_SEPTEMBER: GDateMonth = 9;
93pub const G_DATE_OCTOBER: GDateMonth = 10;
94pub const G_DATE_NOVEMBER: GDateMonth = 11;
95pub const G_DATE_DECEMBER: GDateMonth = 12;
96
97pub type GDateWeekday = c_int;
98pub const G_DATE_BAD_WEEKDAY: GDateWeekday = 0;
99pub const G_DATE_MONDAY: GDateWeekday = 1;
100pub const G_DATE_TUESDAY: GDateWeekday = 2;
101pub const G_DATE_WEDNESDAY: GDateWeekday = 3;
102pub const G_DATE_THURSDAY: GDateWeekday = 4;
103pub const G_DATE_FRIDAY: GDateWeekday = 5;
104pub const G_DATE_SATURDAY: GDateWeekday = 6;
105pub const G_DATE_SUNDAY: GDateWeekday = 7;
106
107pub type GErrorType = c_int;
108pub const G_ERR_UNKNOWN: GErrorType = 0;
109pub const G_ERR_UNEXP_EOF: GErrorType = 1;
110pub const G_ERR_UNEXP_EOF_IN_STRING: GErrorType = 2;
111pub const G_ERR_UNEXP_EOF_IN_COMMENT: GErrorType = 3;
112pub const G_ERR_NON_DIGIT_IN_CONST: GErrorType = 4;
113pub const G_ERR_DIGIT_RADIX: GErrorType = 5;
114pub const G_ERR_FLOAT_RADIX: GErrorType = 6;
115pub const G_ERR_FLOAT_MALFORMED: GErrorType = 7;
116
117pub type GFileError = c_int;
118pub const G_FILE_ERROR_EXIST: GFileError = 0;
119pub const G_FILE_ERROR_ISDIR: GFileError = 1;
120pub const G_FILE_ERROR_ACCES: GFileError = 2;
121pub const G_FILE_ERROR_NAMETOOLONG: GFileError = 3;
122pub const G_FILE_ERROR_NOENT: GFileError = 4;
123pub const G_FILE_ERROR_NOTDIR: GFileError = 5;
124pub const G_FILE_ERROR_NXIO: GFileError = 6;
125pub const G_FILE_ERROR_NODEV: GFileError = 7;
126pub const G_FILE_ERROR_ROFS: GFileError = 8;
127pub const G_FILE_ERROR_TXTBSY: GFileError = 9;
128pub const G_FILE_ERROR_FAULT: GFileError = 10;
129pub const G_FILE_ERROR_LOOP: GFileError = 11;
130pub const G_FILE_ERROR_NOSPC: GFileError = 12;
131pub const G_FILE_ERROR_NOMEM: GFileError = 13;
132pub const G_FILE_ERROR_MFILE: GFileError = 14;
133pub const G_FILE_ERROR_NFILE: GFileError = 15;
134pub const G_FILE_ERROR_BADF: GFileError = 16;
135pub const G_FILE_ERROR_INVAL: GFileError = 17;
136pub const G_FILE_ERROR_PIPE: GFileError = 18;
137pub const G_FILE_ERROR_AGAIN: GFileError = 19;
138pub const G_FILE_ERROR_INTR: GFileError = 20;
139pub const G_FILE_ERROR_IO: GFileError = 21;
140pub const G_FILE_ERROR_PERM: GFileError = 22;
141pub const G_FILE_ERROR_NOSYS: GFileError = 23;
142pub const G_FILE_ERROR_FAILED: GFileError = 24;
143
144pub type GIOChannelError = c_int;
145pub const G_IO_CHANNEL_ERROR_FBIG: GIOChannelError = 0;
146pub const G_IO_CHANNEL_ERROR_INVAL: GIOChannelError = 1;
147pub const G_IO_CHANNEL_ERROR_IO: GIOChannelError = 2;
148pub const G_IO_CHANNEL_ERROR_ISDIR: GIOChannelError = 3;
149pub const G_IO_CHANNEL_ERROR_NOSPC: GIOChannelError = 4;
150pub const G_IO_CHANNEL_ERROR_NXIO: GIOChannelError = 5;
151pub const G_IO_CHANNEL_ERROR_OVERFLOW: GIOChannelError = 6;
152pub const G_IO_CHANNEL_ERROR_PIPE: GIOChannelError = 7;
153pub const G_IO_CHANNEL_ERROR_FAILED: GIOChannelError = 8;
154
155pub type GIOError = c_int;
156pub const G_IO_ERROR_NONE: GIOError = 0;
157pub const G_IO_ERROR_AGAIN: GIOError = 1;
158pub const G_IO_ERROR_INVAL: GIOError = 2;
159pub const G_IO_ERROR_UNKNOWN: GIOError = 3;
160
161pub type GIOStatus = c_int;
162pub const G_IO_STATUS_ERROR: GIOStatus = 0;
163pub const G_IO_STATUS_NORMAL: GIOStatus = 1;
164pub const G_IO_STATUS_EOF: GIOStatus = 2;
165pub const G_IO_STATUS_AGAIN: GIOStatus = 3;
166
167pub type GKeyFileError = c_int;
168pub const G_KEY_FILE_ERROR_UNKNOWN_ENCODING: GKeyFileError = 0;
169pub const G_KEY_FILE_ERROR_PARSE: GKeyFileError = 1;
170pub const G_KEY_FILE_ERROR_NOT_FOUND: GKeyFileError = 2;
171pub const G_KEY_FILE_ERROR_KEY_NOT_FOUND: GKeyFileError = 3;
172pub const G_KEY_FILE_ERROR_GROUP_NOT_FOUND: GKeyFileError = 4;
173pub const G_KEY_FILE_ERROR_INVALID_VALUE: GKeyFileError = 5;
174
175pub type GLogWriterOutput = c_int;
176pub const G_LOG_WRITER_HANDLED: GLogWriterOutput = 1;
177pub const G_LOG_WRITER_UNHANDLED: GLogWriterOutput = 0;
178
179pub type GMarkupError = c_int;
180pub const G_MARKUP_ERROR_BAD_UTF8: GMarkupError = 0;
181pub const G_MARKUP_ERROR_EMPTY: GMarkupError = 1;
182pub const G_MARKUP_ERROR_PARSE: GMarkupError = 2;
183pub const G_MARKUP_ERROR_UNKNOWN_ELEMENT: GMarkupError = 3;
184pub const G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: GMarkupError = 4;
185pub const G_MARKUP_ERROR_INVALID_CONTENT: GMarkupError = 5;
186pub const G_MARKUP_ERROR_MISSING_ATTRIBUTE: GMarkupError = 6;
187
188pub type GNormalizeMode = c_int;
189pub const G_NORMALIZE_DEFAULT: GNormalizeMode = 0;
190pub const G_NORMALIZE_NFD: GNormalizeMode = 0;
191pub const G_NORMALIZE_DEFAULT_COMPOSE: GNormalizeMode = 1;
192pub const G_NORMALIZE_NFC: GNormalizeMode = 1;
193pub const G_NORMALIZE_ALL: GNormalizeMode = 2;
194pub const G_NORMALIZE_NFKD: GNormalizeMode = 2;
195pub const G_NORMALIZE_ALL_COMPOSE: GNormalizeMode = 3;
196pub const G_NORMALIZE_NFKC: GNormalizeMode = 3;
197
198pub type GNumberParserError = c_int;
199pub const G_NUMBER_PARSER_ERROR_INVALID: GNumberParserError = 0;
200pub const G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: GNumberParserError = 1;
201
202pub type GOnceStatus = c_int;
203pub const G_ONCE_STATUS_NOTCALLED: GOnceStatus = 0;
204pub const G_ONCE_STATUS_PROGRESS: GOnceStatus = 1;
205pub const G_ONCE_STATUS_READY: GOnceStatus = 2;
206
207pub type GOptionArg = c_int;
208pub const G_OPTION_ARG_NONE: GOptionArg = 0;
209pub const G_OPTION_ARG_STRING: GOptionArg = 1;
210pub const G_OPTION_ARG_INT: GOptionArg = 2;
211pub const G_OPTION_ARG_CALLBACK: GOptionArg = 3;
212pub const G_OPTION_ARG_FILENAME: GOptionArg = 4;
213pub const G_OPTION_ARG_STRING_ARRAY: GOptionArg = 5;
214pub const G_OPTION_ARG_FILENAME_ARRAY: GOptionArg = 6;
215pub const G_OPTION_ARG_DOUBLE: GOptionArg = 7;
216pub const G_OPTION_ARG_INT64: GOptionArg = 8;
217
218pub type GOptionError = c_int;
219pub const G_OPTION_ERROR_UNKNOWN_OPTION: GOptionError = 0;
220pub const G_OPTION_ERROR_BAD_VALUE: GOptionError = 1;
221pub const G_OPTION_ERROR_FAILED: GOptionError = 2;
222
223pub type GRegexError = c_int;
224pub const G_REGEX_ERROR_COMPILE: GRegexError = 0;
225pub const G_REGEX_ERROR_OPTIMIZE: GRegexError = 1;
226pub const G_REGEX_ERROR_REPLACE: GRegexError = 2;
227pub const G_REGEX_ERROR_MATCH: GRegexError = 3;
228pub const G_REGEX_ERROR_INTERNAL: GRegexError = 4;
229pub const G_REGEX_ERROR_STRAY_BACKSLASH: GRegexError = 101;
230pub const G_REGEX_ERROR_MISSING_CONTROL_CHAR: GRegexError = 102;
231pub const G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: GRegexError = 103;
232pub const G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: GRegexError = 104;
233pub const G_REGEX_ERROR_QUANTIFIER_TOO_BIG: GRegexError = 105;
234pub const G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: GRegexError = 106;
235pub const G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: GRegexError = 107;
236pub const G_REGEX_ERROR_RANGE_OUT_OF_ORDER: GRegexError = 108;
237pub const G_REGEX_ERROR_NOTHING_TO_REPEAT: GRegexError = 109;
238pub const G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: GRegexError = 112;
239pub const G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: GRegexError = 113;
240pub const G_REGEX_ERROR_UNMATCHED_PARENTHESIS: GRegexError = 114;
241pub const G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: GRegexError = 115;
242pub const G_REGEX_ERROR_UNTERMINATED_COMMENT: GRegexError = 118;
243pub const G_REGEX_ERROR_EXPRESSION_TOO_LARGE: GRegexError = 120;
244pub const G_REGEX_ERROR_MEMORY_ERROR: GRegexError = 121;
245pub const G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: GRegexError = 125;
246pub const G_REGEX_ERROR_MALFORMED_CONDITION: GRegexError = 126;
247pub const G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: GRegexError = 127;
248pub const G_REGEX_ERROR_ASSERTION_EXPECTED: GRegexError = 128;
249pub const G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: GRegexError = 130;
250pub const G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: GRegexError = 131;
251pub const G_REGEX_ERROR_HEX_CODE_TOO_LARGE: GRegexError = 134;
252pub const G_REGEX_ERROR_INVALID_CONDITION: GRegexError = 135;
253pub const G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: GRegexError = 136;
254pub const G_REGEX_ERROR_INFINITE_LOOP: GRegexError = 140;
255pub const G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: GRegexError = 142;
256pub const G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: GRegexError = 143;
257pub const G_REGEX_ERROR_MALFORMED_PROPERTY: GRegexError = 146;
258pub const G_REGEX_ERROR_UNKNOWN_PROPERTY: GRegexError = 147;
259pub const G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: GRegexError = 148;
260pub const G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: GRegexError = 149;
261pub const G_REGEX_ERROR_INVALID_OCTAL_VALUE: GRegexError = 151;
262pub const G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: GRegexError = 154;
263pub const G_REGEX_ERROR_DEFINE_REPETION: GRegexError = 155;
264pub const G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: GRegexError = 156;
265pub const G_REGEX_ERROR_MISSING_BACK_REFERENCE: GRegexError = 157;
266pub const G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: GRegexError = 158;
267pub const G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: GRegexError = 159;
268pub const G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: GRegexError = 160;
269pub const G_REGEX_ERROR_NUMBER_TOO_BIG: GRegexError = 161;
270pub const G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: GRegexError = 162;
271pub const G_REGEX_ERROR_MISSING_DIGIT: GRegexError = 163;
272pub const G_REGEX_ERROR_INVALID_DATA_CHARACTER: GRegexError = 164;
273pub const G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: GRegexError = 165;
274pub const G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: GRegexError = 166;
275pub const G_REGEX_ERROR_INVALID_CONTROL_CHAR: GRegexError = 168;
276pub const G_REGEX_ERROR_MISSING_NAME: GRegexError = 169;
277pub const G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: GRegexError = 171;
278pub const G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: GRegexError = 172;
279pub const G_REGEX_ERROR_NAME_TOO_LONG: GRegexError = 175;
280pub const G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: GRegexError = 176;
281
282pub type GSeekType = c_int;
283pub const G_SEEK_CUR: GSeekType = 0;
284pub const G_SEEK_SET: GSeekType = 1;
285pub const G_SEEK_END: GSeekType = 2;
286
287pub type GShellError = c_int;
288pub const G_SHELL_ERROR_BAD_QUOTING: GShellError = 0;
289pub const G_SHELL_ERROR_EMPTY_STRING: GShellError = 1;
290pub const G_SHELL_ERROR_FAILED: GShellError = 2;
291
292pub type GSliceConfig = c_int;
293pub const G_SLICE_CONFIG_ALWAYS_MALLOC: GSliceConfig = 1;
294pub const G_SLICE_CONFIG_BYPASS_MAGAZINES: GSliceConfig = 2;
295pub const G_SLICE_CONFIG_WORKING_SET_MSECS: GSliceConfig = 3;
296pub const G_SLICE_CONFIG_COLOR_INCREMENT: GSliceConfig = 4;
297pub const G_SLICE_CONFIG_CHUNK_SIZES: GSliceConfig = 5;
298pub const G_SLICE_CONFIG_CONTENTION_COUNTER: GSliceConfig = 6;
299
300pub type GSpawnError = c_int;
301pub const G_SPAWN_ERROR_FORK: GSpawnError = 0;
302pub const G_SPAWN_ERROR_READ: GSpawnError = 1;
303pub const G_SPAWN_ERROR_CHDIR: GSpawnError = 2;
304pub const G_SPAWN_ERROR_ACCES: GSpawnError = 3;
305pub const G_SPAWN_ERROR_PERM: GSpawnError = 4;
306pub const G_SPAWN_ERROR_TOO_BIG: GSpawnError = 5;
307pub const G_SPAWN_ERROR_2BIG: GSpawnError = 5;
308pub const G_SPAWN_ERROR_NOEXEC: GSpawnError = 6;
309pub const G_SPAWN_ERROR_NAMETOOLONG: GSpawnError = 7;
310pub const G_SPAWN_ERROR_NOENT: GSpawnError = 8;
311pub const G_SPAWN_ERROR_NOMEM: GSpawnError = 9;
312pub const G_SPAWN_ERROR_NOTDIR: GSpawnError = 10;
313pub const G_SPAWN_ERROR_LOOP: GSpawnError = 11;
314pub const G_SPAWN_ERROR_TXTBUSY: GSpawnError = 12;
315pub const G_SPAWN_ERROR_IO: GSpawnError = 13;
316pub const G_SPAWN_ERROR_NFILE: GSpawnError = 14;
317pub const G_SPAWN_ERROR_MFILE: GSpawnError = 15;
318pub const G_SPAWN_ERROR_INVAL: GSpawnError = 16;
319pub const G_SPAWN_ERROR_ISDIR: GSpawnError = 17;
320pub const G_SPAWN_ERROR_LIBBAD: GSpawnError = 18;
321pub const G_SPAWN_ERROR_FAILED: GSpawnError = 19;
322
323pub type GTestFileType = c_int;
324pub const G_TEST_DIST: GTestFileType = 0;
325pub const G_TEST_BUILT: GTestFileType = 1;
326
327pub type GTestLogType = c_int;
328pub const G_TEST_LOG_NONE: GTestLogType = 0;
329pub const G_TEST_LOG_ERROR: GTestLogType = 1;
330pub const G_TEST_LOG_START_BINARY: GTestLogType = 2;
331pub const G_TEST_LOG_LIST_CASE: GTestLogType = 3;
332pub const G_TEST_LOG_SKIP_CASE: GTestLogType = 4;
333pub const G_TEST_LOG_START_CASE: GTestLogType = 5;
334pub const G_TEST_LOG_STOP_CASE: GTestLogType = 6;
335pub const G_TEST_LOG_MIN_RESULT: GTestLogType = 7;
336pub const G_TEST_LOG_MAX_RESULT: GTestLogType = 8;
337pub const G_TEST_LOG_MESSAGE: GTestLogType = 9;
338pub const G_TEST_LOG_START_SUITE: GTestLogType = 10;
339pub const G_TEST_LOG_STOP_SUITE: GTestLogType = 11;
340
341pub type GTestResult = c_int;
342pub const G_TEST_RUN_SUCCESS: GTestResult = 0;
343pub const G_TEST_RUN_SKIPPED: GTestResult = 1;
344pub const G_TEST_RUN_FAILURE: GTestResult = 2;
345pub const G_TEST_RUN_INCOMPLETE: GTestResult = 3;
346
347pub type GThreadError = c_int;
348pub const G_THREAD_ERROR_AGAIN: GThreadError = 0;
349
350pub type GThreadPriority = c_int;
351pub const G_THREAD_PRIORITY_LOW: GThreadPriority = 0;
352pub const G_THREAD_PRIORITY_NORMAL: GThreadPriority = 1;
353pub const G_THREAD_PRIORITY_HIGH: GThreadPriority = 2;
354pub const G_THREAD_PRIORITY_URGENT: GThreadPriority = 3;
355
356pub type GTimeType = c_int;
357pub const G_TIME_TYPE_STANDARD: GTimeType = 0;
358pub const G_TIME_TYPE_DAYLIGHT: GTimeType = 1;
359pub const G_TIME_TYPE_UNIVERSAL: GTimeType = 2;
360
361pub type GTokenType = c_int;
362pub const G_TOKEN_EOF: GTokenType = 0;
363pub const G_TOKEN_LEFT_PAREN: GTokenType = 40;
364pub const G_TOKEN_RIGHT_PAREN: GTokenType = 41;
365pub const G_TOKEN_LEFT_CURLY: GTokenType = 123;
366pub const G_TOKEN_RIGHT_CURLY: GTokenType = 125;
367pub const G_TOKEN_LEFT_BRACE: GTokenType = 91;
368pub const G_TOKEN_RIGHT_BRACE: GTokenType = 93;
369pub const G_TOKEN_EQUAL_SIGN: GTokenType = 61;
370pub const G_TOKEN_COMMA: GTokenType = 44;
371pub const G_TOKEN_NONE: GTokenType = 256;
372pub const G_TOKEN_ERROR: GTokenType = 257;
373pub const G_TOKEN_CHAR: GTokenType = 258;
374pub const G_TOKEN_BINARY: GTokenType = 259;
375pub const G_TOKEN_OCTAL: GTokenType = 260;
376pub const G_TOKEN_INT: GTokenType = 261;
377pub const G_TOKEN_HEX: GTokenType = 262;
378pub const G_TOKEN_FLOAT: GTokenType = 263;
379pub const G_TOKEN_STRING: GTokenType = 264;
380pub const G_TOKEN_SYMBOL: GTokenType = 265;
381pub const G_TOKEN_IDENTIFIER: GTokenType = 266;
382pub const G_TOKEN_IDENTIFIER_NULL: GTokenType = 267;
383pub const G_TOKEN_COMMENT_SINGLE: GTokenType = 268;
384pub const G_TOKEN_COMMENT_MULTI: GTokenType = 269;
385
386pub type GTraverseType = c_int;
387pub const G_IN_ORDER: GTraverseType = 0;
388pub const G_PRE_ORDER: GTraverseType = 1;
389pub const G_POST_ORDER: GTraverseType = 2;
390pub const G_LEVEL_ORDER: GTraverseType = 3;
391
392pub type GUnicodeBreakType = c_int;
393pub const G_UNICODE_BREAK_MANDATORY: GUnicodeBreakType = 0;
394pub const G_UNICODE_BREAK_CARRIAGE_RETURN: GUnicodeBreakType = 1;
395pub const G_UNICODE_BREAK_LINE_FEED: GUnicodeBreakType = 2;
396pub const G_UNICODE_BREAK_COMBINING_MARK: GUnicodeBreakType = 3;
397pub const G_UNICODE_BREAK_SURROGATE: GUnicodeBreakType = 4;
398pub const G_UNICODE_BREAK_ZERO_WIDTH_SPACE: GUnicodeBreakType = 5;
399pub const G_UNICODE_BREAK_INSEPARABLE: GUnicodeBreakType = 6;
400pub const G_UNICODE_BREAK_NON_BREAKING_GLUE: GUnicodeBreakType = 7;
401pub const G_UNICODE_BREAK_CONTINGENT: GUnicodeBreakType = 8;
402pub const G_UNICODE_BREAK_SPACE: GUnicodeBreakType = 9;
403pub const G_UNICODE_BREAK_AFTER: GUnicodeBreakType = 10;
404pub const G_UNICODE_BREAK_BEFORE: GUnicodeBreakType = 11;
405pub const G_UNICODE_BREAK_BEFORE_AND_AFTER: GUnicodeBreakType = 12;
406pub const G_UNICODE_BREAK_HYPHEN: GUnicodeBreakType = 13;
407pub const G_UNICODE_BREAK_NON_STARTER: GUnicodeBreakType = 14;
408pub const G_UNICODE_BREAK_OPEN_PUNCTUATION: GUnicodeBreakType = 15;
409pub const G_UNICODE_BREAK_CLOSE_PUNCTUATION: GUnicodeBreakType = 16;
410pub const G_UNICODE_BREAK_QUOTATION: GUnicodeBreakType = 17;
411pub const G_UNICODE_BREAK_EXCLAMATION: GUnicodeBreakType = 18;
412pub const G_UNICODE_BREAK_IDEOGRAPHIC: GUnicodeBreakType = 19;
413pub const G_UNICODE_BREAK_NUMERIC: GUnicodeBreakType = 20;
414pub const G_UNICODE_BREAK_INFIX_SEPARATOR: GUnicodeBreakType = 21;
415pub const G_UNICODE_BREAK_SYMBOL: GUnicodeBreakType = 22;
416pub const G_UNICODE_BREAK_ALPHABETIC: GUnicodeBreakType = 23;
417pub const G_UNICODE_BREAK_PREFIX: GUnicodeBreakType = 24;
418pub const G_UNICODE_BREAK_POSTFIX: GUnicodeBreakType = 25;
419pub const G_UNICODE_BREAK_COMPLEX_CONTEXT: GUnicodeBreakType = 26;
420pub const G_UNICODE_BREAK_AMBIGUOUS: GUnicodeBreakType = 27;
421pub const G_UNICODE_BREAK_UNKNOWN: GUnicodeBreakType = 28;
422pub const G_UNICODE_BREAK_NEXT_LINE: GUnicodeBreakType = 29;
423pub const G_UNICODE_BREAK_WORD_JOINER: GUnicodeBreakType = 30;
424pub const G_UNICODE_BREAK_HANGUL_L_JAMO: GUnicodeBreakType = 31;
425pub const G_UNICODE_BREAK_HANGUL_V_JAMO: GUnicodeBreakType = 32;
426pub const G_UNICODE_BREAK_HANGUL_T_JAMO: GUnicodeBreakType = 33;
427pub const G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: GUnicodeBreakType = 34;
428pub const G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: GUnicodeBreakType = 35;
429pub const G_UNICODE_BREAK_CLOSE_PARANTHESIS: GUnicodeBreakType = 36;
430pub const G_UNICODE_BREAK_CLOSE_PARENTHESIS: GUnicodeBreakType = 36;
431pub const G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: GUnicodeBreakType = 37;
432pub const G_UNICODE_BREAK_HEBREW_LETTER: GUnicodeBreakType = 38;
433pub const G_UNICODE_BREAK_REGIONAL_INDICATOR: GUnicodeBreakType = 39;
434pub const G_UNICODE_BREAK_EMOJI_BASE: GUnicodeBreakType = 40;
435pub const G_UNICODE_BREAK_EMOJI_MODIFIER: GUnicodeBreakType = 41;
436pub const G_UNICODE_BREAK_ZERO_WIDTH_JOINER: GUnicodeBreakType = 42;
437pub const G_UNICODE_BREAK_AKSARA: GUnicodeBreakType = 43;
438pub const G_UNICODE_BREAK_AKSARA_PRE_BASE: GUnicodeBreakType = 44;
439pub const G_UNICODE_BREAK_AKSARA_START: GUnicodeBreakType = 45;
440pub const G_UNICODE_BREAK_VIRAMA_FINAL: GUnicodeBreakType = 46;
441pub const G_UNICODE_BREAK_VIRAMA: GUnicodeBreakType = 47;
442pub const G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN: GUnicodeBreakType = 48;
443
444pub type GUnicodeScript = c_int;
445pub const G_UNICODE_SCRIPT_INVALID_CODE: GUnicodeScript = -1;
446pub const G_UNICODE_SCRIPT_COMMON: GUnicodeScript = 0;
447pub const G_UNICODE_SCRIPT_INHERITED: GUnicodeScript = 1;
448pub const G_UNICODE_SCRIPT_ARABIC: GUnicodeScript = 2;
449pub const G_UNICODE_SCRIPT_ARMENIAN: GUnicodeScript = 3;
450pub const G_UNICODE_SCRIPT_BENGALI: GUnicodeScript = 4;
451pub const G_UNICODE_SCRIPT_BOPOMOFO: GUnicodeScript = 5;
452pub const G_UNICODE_SCRIPT_CHEROKEE: GUnicodeScript = 6;
453pub const G_UNICODE_SCRIPT_COPTIC: GUnicodeScript = 7;
454pub const G_UNICODE_SCRIPT_CYRILLIC: GUnicodeScript = 8;
455pub const G_UNICODE_SCRIPT_DESERET: GUnicodeScript = 9;
456pub const G_UNICODE_SCRIPT_DEVANAGARI: GUnicodeScript = 10;
457pub const G_UNICODE_SCRIPT_ETHIOPIC: GUnicodeScript = 11;
458pub const G_UNICODE_SCRIPT_GEORGIAN: GUnicodeScript = 12;
459pub const G_UNICODE_SCRIPT_GOTHIC: GUnicodeScript = 13;
460pub const G_UNICODE_SCRIPT_GREEK: GUnicodeScript = 14;
461pub const G_UNICODE_SCRIPT_GUJARATI: GUnicodeScript = 15;
462pub const G_UNICODE_SCRIPT_GURMUKHI: GUnicodeScript = 16;
463pub const G_UNICODE_SCRIPT_HAN: GUnicodeScript = 17;
464pub const G_UNICODE_SCRIPT_HANGUL: GUnicodeScript = 18;
465pub const G_UNICODE_SCRIPT_HEBREW: GUnicodeScript = 19;
466pub const G_UNICODE_SCRIPT_HIRAGANA: GUnicodeScript = 20;
467pub const G_UNICODE_SCRIPT_KANNADA: GUnicodeScript = 21;
468pub const G_UNICODE_SCRIPT_KATAKANA: GUnicodeScript = 22;
469pub const G_UNICODE_SCRIPT_KHMER: GUnicodeScript = 23;
470pub const G_UNICODE_SCRIPT_LAO: GUnicodeScript = 24;
471pub const G_UNICODE_SCRIPT_LATIN: GUnicodeScript = 25;
472pub const G_UNICODE_SCRIPT_MALAYALAM: GUnicodeScript = 26;
473pub const G_UNICODE_SCRIPT_MONGOLIAN: GUnicodeScript = 27;
474pub const G_UNICODE_SCRIPT_MYANMAR: GUnicodeScript = 28;
475pub const G_UNICODE_SCRIPT_OGHAM: GUnicodeScript = 29;
476pub const G_UNICODE_SCRIPT_OLD_ITALIC: GUnicodeScript = 30;
477pub const G_UNICODE_SCRIPT_ORIYA: GUnicodeScript = 31;
478pub const G_UNICODE_SCRIPT_RUNIC: GUnicodeScript = 32;
479pub const G_UNICODE_SCRIPT_SINHALA: GUnicodeScript = 33;
480pub const G_UNICODE_SCRIPT_SYRIAC: GUnicodeScript = 34;
481pub const G_UNICODE_SCRIPT_TAMIL: GUnicodeScript = 35;
482pub const G_UNICODE_SCRIPT_TELUGU: GUnicodeScript = 36;
483pub const G_UNICODE_SCRIPT_THAANA: GUnicodeScript = 37;
484pub const G_UNICODE_SCRIPT_THAI: GUnicodeScript = 38;
485pub const G_UNICODE_SCRIPT_TIBETAN: GUnicodeScript = 39;
486pub const G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL: GUnicodeScript = 40;
487pub const G_UNICODE_SCRIPT_YI: GUnicodeScript = 41;
488pub const G_UNICODE_SCRIPT_TAGALOG: GUnicodeScript = 42;
489pub const G_UNICODE_SCRIPT_HANUNOO: GUnicodeScript = 43;
490pub const G_UNICODE_SCRIPT_BUHID: GUnicodeScript = 44;
491pub const G_UNICODE_SCRIPT_TAGBANWA: GUnicodeScript = 45;
492pub const G_UNICODE_SCRIPT_BRAILLE: GUnicodeScript = 46;
493pub const G_UNICODE_SCRIPT_CYPRIOT: GUnicodeScript = 47;
494pub const G_UNICODE_SCRIPT_LIMBU: GUnicodeScript = 48;
495pub const G_UNICODE_SCRIPT_OSMANYA: GUnicodeScript = 49;
496pub const G_UNICODE_SCRIPT_SHAVIAN: GUnicodeScript = 50;
497pub const G_UNICODE_SCRIPT_LINEAR_B: GUnicodeScript = 51;
498pub const G_UNICODE_SCRIPT_TAI_LE: GUnicodeScript = 52;
499pub const G_UNICODE_SCRIPT_UGARITIC: GUnicodeScript = 53;
500pub const G_UNICODE_SCRIPT_NEW_TAI_LUE: GUnicodeScript = 54;
501pub const G_UNICODE_SCRIPT_BUGINESE: GUnicodeScript = 55;
502pub const G_UNICODE_SCRIPT_GLAGOLITIC: GUnicodeScript = 56;
503pub const G_UNICODE_SCRIPT_TIFINAGH: GUnicodeScript = 57;
504pub const G_UNICODE_SCRIPT_SYLOTI_NAGRI: GUnicodeScript = 58;
505pub const G_UNICODE_SCRIPT_OLD_PERSIAN: GUnicodeScript = 59;
506pub const G_UNICODE_SCRIPT_KHAROSHTHI: GUnicodeScript = 60;
507pub const G_UNICODE_SCRIPT_UNKNOWN: GUnicodeScript = 61;
508pub const G_UNICODE_SCRIPT_BALINESE: GUnicodeScript = 62;
509pub const G_UNICODE_SCRIPT_CUNEIFORM: GUnicodeScript = 63;
510pub const G_UNICODE_SCRIPT_PHOENICIAN: GUnicodeScript = 64;
511pub const G_UNICODE_SCRIPT_PHAGS_PA: GUnicodeScript = 65;
512pub const G_UNICODE_SCRIPT_NKO: GUnicodeScript = 66;
513pub const G_UNICODE_SCRIPT_KAYAH_LI: GUnicodeScript = 67;
514pub const G_UNICODE_SCRIPT_LEPCHA: GUnicodeScript = 68;
515pub const G_UNICODE_SCRIPT_REJANG: GUnicodeScript = 69;
516pub const G_UNICODE_SCRIPT_SUNDANESE: GUnicodeScript = 70;
517pub const G_UNICODE_SCRIPT_SAURASHTRA: GUnicodeScript = 71;
518pub const G_UNICODE_SCRIPT_CHAM: GUnicodeScript = 72;
519pub const G_UNICODE_SCRIPT_OL_CHIKI: GUnicodeScript = 73;
520pub const G_UNICODE_SCRIPT_VAI: GUnicodeScript = 74;
521pub const G_UNICODE_SCRIPT_CARIAN: GUnicodeScript = 75;
522pub const G_UNICODE_SCRIPT_LYCIAN: GUnicodeScript = 76;
523pub const G_UNICODE_SCRIPT_LYDIAN: GUnicodeScript = 77;
524pub const G_UNICODE_SCRIPT_AVESTAN: GUnicodeScript = 78;
525pub const G_UNICODE_SCRIPT_BAMUM: GUnicodeScript = 79;
526pub const G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS: GUnicodeScript = 80;
527pub const G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC: GUnicodeScript = 81;
528pub const G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI: GUnicodeScript = 82;
529pub const G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN: GUnicodeScript = 83;
530pub const G_UNICODE_SCRIPT_JAVANESE: GUnicodeScript = 84;
531pub const G_UNICODE_SCRIPT_KAITHI: GUnicodeScript = 85;
532pub const G_UNICODE_SCRIPT_LISU: GUnicodeScript = 86;
533pub const G_UNICODE_SCRIPT_MEETEI_MAYEK: GUnicodeScript = 87;
534pub const G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN: GUnicodeScript = 88;
535pub const G_UNICODE_SCRIPT_OLD_TURKIC: GUnicodeScript = 89;
536pub const G_UNICODE_SCRIPT_SAMARITAN: GUnicodeScript = 90;
537pub const G_UNICODE_SCRIPT_TAI_THAM: GUnicodeScript = 91;
538pub const G_UNICODE_SCRIPT_TAI_VIET: GUnicodeScript = 92;
539pub const G_UNICODE_SCRIPT_BATAK: GUnicodeScript = 93;
540pub const G_UNICODE_SCRIPT_BRAHMI: GUnicodeScript = 94;
541pub const G_UNICODE_SCRIPT_MANDAIC: GUnicodeScript = 95;
542pub const G_UNICODE_SCRIPT_CHAKMA: GUnicodeScript = 96;
543pub const G_UNICODE_SCRIPT_MEROITIC_CURSIVE: GUnicodeScript = 97;
544pub const G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: GUnicodeScript = 98;
545pub const G_UNICODE_SCRIPT_MIAO: GUnicodeScript = 99;
546pub const G_UNICODE_SCRIPT_SHARADA: GUnicodeScript = 100;
547pub const G_UNICODE_SCRIPT_SORA_SOMPENG: GUnicodeScript = 101;
548pub const G_UNICODE_SCRIPT_TAKRI: GUnicodeScript = 102;
549pub const G_UNICODE_SCRIPT_BASSA_VAH: GUnicodeScript = 103;
550pub const G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: GUnicodeScript = 104;
551pub const G_UNICODE_SCRIPT_DUPLOYAN: GUnicodeScript = 105;
552pub const G_UNICODE_SCRIPT_ELBASAN: GUnicodeScript = 106;
553pub const G_UNICODE_SCRIPT_GRANTHA: GUnicodeScript = 107;
554pub const G_UNICODE_SCRIPT_KHOJKI: GUnicodeScript = 108;
555pub const G_UNICODE_SCRIPT_KHUDAWADI: GUnicodeScript = 109;
556pub const G_UNICODE_SCRIPT_LINEAR_A: GUnicodeScript = 110;
557pub const G_UNICODE_SCRIPT_MAHAJANI: GUnicodeScript = 111;
558pub const G_UNICODE_SCRIPT_MANICHAEAN: GUnicodeScript = 112;
559pub const G_UNICODE_SCRIPT_MENDE_KIKAKUI: GUnicodeScript = 113;
560pub const G_UNICODE_SCRIPT_MODI: GUnicodeScript = 114;
561pub const G_UNICODE_SCRIPT_MRO: GUnicodeScript = 115;
562pub const G_UNICODE_SCRIPT_NABATAEAN: GUnicodeScript = 116;
563pub const G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: GUnicodeScript = 117;
564pub const G_UNICODE_SCRIPT_OLD_PERMIC: GUnicodeScript = 118;
565pub const G_UNICODE_SCRIPT_PAHAWH_HMONG: GUnicodeScript = 119;
566pub const G_UNICODE_SCRIPT_PALMYRENE: GUnicodeScript = 120;
567pub const G_UNICODE_SCRIPT_PAU_CIN_HAU: GUnicodeScript = 121;
568pub const G_UNICODE_SCRIPT_PSALTER_PAHLAVI: GUnicodeScript = 122;
569pub const G_UNICODE_SCRIPT_SIDDHAM: GUnicodeScript = 123;
570pub const G_UNICODE_SCRIPT_TIRHUTA: GUnicodeScript = 124;
571pub const G_UNICODE_SCRIPT_WARANG_CITI: GUnicodeScript = 125;
572pub const G_UNICODE_SCRIPT_AHOM: GUnicodeScript = 126;
573pub const G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: GUnicodeScript = 127;
574pub const G_UNICODE_SCRIPT_HATRAN: GUnicodeScript = 128;
575pub const G_UNICODE_SCRIPT_MULTANI: GUnicodeScript = 129;
576pub const G_UNICODE_SCRIPT_OLD_HUNGARIAN: GUnicodeScript = 130;
577pub const G_UNICODE_SCRIPT_SIGNWRITING: GUnicodeScript = 131;
578pub const G_UNICODE_SCRIPT_ADLAM: GUnicodeScript = 132;
579pub const G_UNICODE_SCRIPT_BHAIKSUKI: GUnicodeScript = 133;
580pub const G_UNICODE_SCRIPT_MARCHEN: GUnicodeScript = 134;
581pub const G_UNICODE_SCRIPT_NEWA: GUnicodeScript = 135;
582pub const G_UNICODE_SCRIPT_OSAGE: GUnicodeScript = 136;
583pub const G_UNICODE_SCRIPT_TANGUT: GUnicodeScript = 137;
584pub const G_UNICODE_SCRIPT_MASARAM_GONDI: GUnicodeScript = 138;
585pub const G_UNICODE_SCRIPT_NUSHU: GUnicodeScript = 139;
586pub const G_UNICODE_SCRIPT_SOYOMBO: GUnicodeScript = 140;
587pub const G_UNICODE_SCRIPT_ZANABAZAR_SQUARE: GUnicodeScript = 141;
588pub const G_UNICODE_SCRIPT_DOGRA: GUnicodeScript = 142;
589pub const G_UNICODE_SCRIPT_GUNJALA_GONDI: GUnicodeScript = 143;
590pub const G_UNICODE_SCRIPT_HANIFI_ROHINGYA: GUnicodeScript = 144;
591pub const G_UNICODE_SCRIPT_MAKASAR: GUnicodeScript = 145;
592pub const G_UNICODE_SCRIPT_MEDEFAIDRIN: GUnicodeScript = 146;
593pub const G_UNICODE_SCRIPT_OLD_SOGDIAN: GUnicodeScript = 147;
594pub const G_UNICODE_SCRIPT_SOGDIAN: GUnicodeScript = 148;
595pub const G_UNICODE_SCRIPT_ELYMAIC: GUnicodeScript = 149;
596pub const G_UNICODE_SCRIPT_NANDINAGARI: GUnicodeScript = 150;
597pub const G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG: GUnicodeScript = 151;
598pub const G_UNICODE_SCRIPT_WANCHO: GUnicodeScript = 152;
599pub const G_UNICODE_SCRIPT_CHORASMIAN: GUnicodeScript = 153;
600pub const G_UNICODE_SCRIPT_DIVES_AKURU: GUnicodeScript = 154;
601pub const G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT: GUnicodeScript = 155;
602pub const G_UNICODE_SCRIPT_YEZIDI: GUnicodeScript = 156;
603pub const G_UNICODE_SCRIPT_CYPRO_MINOAN: GUnicodeScript = 157;
604pub const G_UNICODE_SCRIPT_OLD_UYGHUR: GUnicodeScript = 158;
605pub const G_UNICODE_SCRIPT_TANGSA: GUnicodeScript = 159;
606pub const G_UNICODE_SCRIPT_TOTO: GUnicodeScript = 160;
607pub const G_UNICODE_SCRIPT_VITHKUQI: GUnicodeScript = 161;
608pub const G_UNICODE_SCRIPT_MATH: GUnicodeScript = 162;
609pub const G_UNICODE_SCRIPT_KAWI: GUnicodeScript = 163;
610pub const G_UNICODE_SCRIPT_NAG_MUNDARI: GUnicodeScript = 164;
611pub const G_UNICODE_SCRIPT_TODHRI: GUnicodeScript = 165;
612pub const G_UNICODE_SCRIPT_GARAY: GUnicodeScript = 166;
613pub const G_UNICODE_SCRIPT_TULU_TIGALARI: GUnicodeScript = 167;
614pub const G_UNICODE_SCRIPT_SUNUWAR: GUnicodeScript = 168;
615pub const G_UNICODE_SCRIPT_GURUNG_KHEMA: GUnicodeScript = 169;
616pub const G_UNICODE_SCRIPT_KIRAT_RAI: GUnicodeScript = 170;
617pub const G_UNICODE_SCRIPT_OL_ONAL: GUnicodeScript = 171;
618pub const G_UNICODE_SCRIPT_SIDETIC: GUnicodeScript = 172;
619pub const G_UNICODE_SCRIPT_TOLONG_SIKI: GUnicodeScript = 173;
620pub const G_UNICODE_SCRIPT_TAI_YO: GUnicodeScript = 174;
621pub const G_UNICODE_SCRIPT_BERIA_ERFE: GUnicodeScript = 175;
622
623pub type GUnicodeType = c_int;
624pub const G_UNICODE_CONTROL: GUnicodeType = 0;
625pub const G_UNICODE_FORMAT: GUnicodeType = 1;
626pub const G_UNICODE_UNASSIGNED: GUnicodeType = 2;
627pub const G_UNICODE_PRIVATE_USE: GUnicodeType = 3;
628pub const G_UNICODE_SURROGATE: GUnicodeType = 4;
629pub const G_UNICODE_LOWERCASE_LETTER: GUnicodeType = 5;
630pub const G_UNICODE_MODIFIER_LETTER: GUnicodeType = 6;
631pub const G_UNICODE_OTHER_LETTER: GUnicodeType = 7;
632pub const G_UNICODE_TITLECASE_LETTER: GUnicodeType = 8;
633pub const G_UNICODE_UPPERCASE_LETTER: GUnicodeType = 9;
634pub const G_UNICODE_SPACING_MARK: GUnicodeType = 10;
635pub const G_UNICODE_ENCLOSING_MARK: GUnicodeType = 11;
636pub const G_UNICODE_NON_SPACING_MARK: GUnicodeType = 12;
637pub const G_UNICODE_DECIMAL_NUMBER: GUnicodeType = 13;
638pub const G_UNICODE_LETTER_NUMBER: GUnicodeType = 14;
639pub const G_UNICODE_OTHER_NUMBER: GUnicodeType = 15;
640pub const G_UNICODE_CONNECT_PUNCTUATION: GUnicodeType = 16;
641pub const G_UNICODE_DASH_PUNCTUATION: GUnicodeType = 17;
642pub const G_UNICODE_CLOSE_PUNCTUATION: GUnicodeType = 18;
643pub const G_UNICODE_FINAL_PUNCTUATION: GUnicodeType = 19;
644pub const G_UNICODE_INITIAL_PUNCTUATION: GUnicodeType = 20;
645pub const G_UNICODE_OTHER_PUNCTUATION: GUnicodeType = 21;
646pub const G_UNICODE_OPEN_PUNCTUATION: GUnicodeType = 22;
647pub const G_UNICODE_CURRENCY_SYMBOL: GUnicodeType = 23;
648pub const G_UNICODE_MODIFIER_SYMBOL: GUnicodeType = 24;
649pub const G_UNICODE_MATH_SYMBOL: GUnicodeType = 25;
650pub const G_UNICODE_OTHER_SYMBOL: GUnicodeType = 26;
651pub const G_UNICODE_LINE_SEPARATOR: GUnicodeType = 27;
652pub const G_UNICODE_PARAGRAPH_SEPARATOR: GUnicodeType = 28;
653pub const G_UNICODE_SPACE_SEPARATOR: GUnicodeType = 29;
654
655pub type GUriError = c_int;
656pub const G_URI_ERROR_FAILED: GUriError = 0;
657pub const G_URI_ERROR_BAD_SCHEME: GUriError = 1;
658pub const G_URI_ERROR_BAD_USER: GUriError = 2;
659pub const G_URI_ERROR_BAD_PASSWORD: GUriError = 3;
660pub const G_URI_ERROR_BAD_AUTH_PARAMS: GUriError = 4;
661pub const G_URI_ERROR_BAD_HOST: GUriError = 5;
662pub const G_URI_ERROR_BAD_PORT: GUriError = 6;
663pub const G_URI_ERROR_BAD_PATH: GUriError = 7;
664pub const G_URI_ERROR_BAD_QUERY: GUriError = 8;
665pub const G_URI_ERROR_BAD_FRAGMENT: GUriError = 9;
666
667pub type GUserDirectory = c_int;
668pub const G_USER_DIRECTORY_DESKTOP: GUserDirectory = 0;
669pub const G_USER_DIRECTORY_DOCUMENTS: GUserDirectory = 1;
670pub const G_USER_DIRECTORY_DOWNLOAD: GUserDirectory = 2;
671pub const G_USER_DIRECTORY_MUSIC: GUserDirectory = 3;
672pub const G_USER_DIRECTORY_PICTURES: GUserDirectory = 4;
673pub const G_USER_DIRECTORY_PUBLIC_SHARE: GUserDirectory = 5;
674pub const G_USER_DIRECTORY_TEMPLATES: GUserDirectory = 6;
675pub const G_USER_DIRECTORY_VIDEOS: GUserDirectory = 7;
676pub const G_USER_N_DIRECTORIES: GUserDirectory = 8;
677
678pub type GVariantClass = c_int;
679pub const G_VARIANT_CLASS_BOOLEAN: GVariantClass = 98;
680pub const G_VARIANT_CLASS_BYTE: GVariantClass = 121;
681pub const G_VARIANT_CLASS_INT16: GVariantClass = 110;
682pub const G_VARIANT_CLASS_UINT16: GVariantClass = 113;
683pub const G_VARIANT_CLASS_INT32: GVariantClass = 105;
684pub const G_VARIANT_CLASS_UINT32: GVariantClass = 117;
685pub const G_VARIANT_CLASS_INT64: GVariantClass = 120;
686pub const G_VARIANT_CLASS_UINT64: GVariantClass = 116;
687pub const G_VARIANT_CLASS_HANDLE: GVariantClass = 104;
688pub const G_VARIANT_CLASS_DOUBLE: GVariantClass = 100;
689pub const G_VARIANT_CLASS_STRING: GVariantClass = 115;
690pub const G_VARIANT_CLASS_OBJECT_PATH: GVariantClass = 111;
691pub const G_VARIANT_CLASS_SIGNATURE: GVariantClass = 103;
692pub const G_VARIANT_CLASS_VARIANT: GVariantClass = 118;
693pub const G_VARIANT_CLASS_MAYBE: GVariantClass = 109;
694pub const G_VARIANT_CLASS_ARRAY: GVariantClass = 97;
695pub const G_VARIANT_CLASS_TUPLE: GVariantClass = 40;
696pub const G_VARIANT_CLASS_DICT_ENTRY: GVariantClass = 123;
697
698pub type GVariantParseError = c_int;
699pub const G_VARIANT_PARSE_ERROR_FAILED: GVariantParseError = 0;
700pub const G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: GVariantParseError = 1;
701pub const G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: GVariantParseError = 2;
702pub const G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: GVariantParseError = 3;
703pub const G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: GVariantParseError = 4;
704pub const G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: GVariantParseError = 5;
705pub const G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: GVariantParseError = 6;
706pub const G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: GVariantParseError = 7;
707pub const G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: GVariantParseError = 8;
708pub const G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: GVariantParseError = 9;
709pub const G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: GVariantParseError = 10;
710pub const G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: GVariantParseError = 11;
711pub const G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: GVariantParseError = 12;
712pub const G_VARIANT_PARSE_ERROR_TYPE_ERROR: GVariantParseError = 13;
713pub const G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: GVariantParseError = 14;
714pub const G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: GVariantParseError = 15;
715pub const G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT: GVariantParseError = 16;
716pub const G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: GVariantParseError = 17;
717pub const G_VARIANT_PARSE_ERROR_RECURSION: GVariantParseError = 18;
718
719pub const G_ALLOCATOR_LIST: c_int = 1;
721pub const G_ALLOCATOR_NODE: c_int = 3;
722pub const G_ALLOCATOR_SLIST: c_int = 2;
723pub const G_ALLOC_AND_FREE: c_int = 2;
724pub const G_ALLOC_ONLY: c_int = 1;
725pub const G_ASCII_DTOSTR_BUF_SIZE: c_int = 39;
726pub const G_ATOMIC_REF_COUNT_INIT: c_int = 1;
727pub const G_BIG_ENDIAN: c_int = 4321;
728pub const G_CSET_A_2_Z: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\0";
729pub const G_CSET_DIGITS: &[u8] = b"0123456789\0";
730pub const G_CSET_a_2_z: &[u8] = b"abcdefghijklmnopqrstuvwxyz\0";
731pub const G_DATALIST_FLAGS_MASK: c_int = 3;
732pub const G_DATE_BAD_DAY: c_int = 0;
733pub const G_DATE_BAD_JULIAN: c_int = 0;
734pub const G_DATE_BAD_YEAR: c_int = 0;
735pub const G_E: c_double = 2.718282;
736pub const G_HOOK_FLAG_USER_SHIFT: c_int = 4;
737pub const G_IEEE754_DOUBLE_BIAS: c_int = 1023;
738pub const G_IEEE754_FLOAT_BIAS: c_int = 127;
739pub const G_KEY_FILE_DESKTOP_GROUP: &[u8] = b"Desktop Entry\0";
740pub const G_KEY_FILE_DESKTOP_KEY_ACTIONS: &[u8] = b"Actions\0";
741pub const G_KEY_FILE_DESKTOP_KEY_CATEGORIES: &[u8] = b"Categories\0";
742pub const G_KEY_FILE_DESKTOP_KEY_COMMENT: &[u8] = b"Comment\0";
743pub const G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE: &[u8] = b"DBusActivatable\0";
744pub const G_KEY_FILE_DESKTOP_KEY_EXEC: &[u8] = b"Exec\0";
745pub const G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME: &[u8] = b"GenericName\0";
746pub const G_KEY_FILE_DESKTOP_KEY_HIDDEN: &[u8] = b"Hidden\0";
747pub const G_KEY_FILE_DESKTOP_KEY_ICON: &[u8] = b"Icon\0";
748pub const G_KEY_FILE_DESKTOP_KEY_MIME_TYPE: &[u8] = b"MimeType\0";
749pub const G_KEY_FILE_DESKTOP_KEY_NAME: &[u8] = b"Name\0";
750pub const G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN: &[u8] = b"NotShowIn\0";
751pub const G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY: &[u8] = b"NoDisplay\0";
752pub const G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN: &[u8] = b"OnlyShowIn\0";
753pub const G_KEY_FILE_DESKTOP_KEY_PATH: &[u8] = b"Path\0";
754pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY: &[u8] = b"StartupNotify\0";
755pub const G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS: &[u8] = b"StartupWMClass\0";
756pub const G_KEY_FILE_DESKTOP_KEY_TERMINAL: &[u8] = b"Terminal\0";
757pub const G_KEY_FILE_DESKTOP_KEY_TRY_EXEC: &[u8] = b"TryExec\0";
758pub const G_KEY_FILE_DESKTOP_KEY_TYPE: &[u8] = b"Type\0";
759pub const G_KEY_FILE_DESKTOP_KEY_URL: &[u8] = b"URL\0";
760pub const G_KEY_FILE_DESKTOP_KEY_VERSION: &[u8] = b"Version\0";
761pub const G_KEY_FILE_DESKTOP_TYPE_APPLICATION: &[u8] = b"Application\0";
762pub const G_KEY_FILE_DESKTOP_TYPE_DIRECTORY: &[u8] = b"Directory\0";
763pub const G_KEY_FILE_DESKTOP_TYPE_LINK: &[u8] = b"Link\0";
764pub const G_LITTLE_ENDIAN: c_int = 1234;
765pub const G_LN10: c_double = 2.302585;
766pub const G_LN2: c_double = 0.693147;
767pub const G_LOG_2_BASE_10: c_double = 0.301030;
768pub const G_LOG_FATAL_MASK: c_int = 5;
769pub const G_LOG_LEVEL_USER_SHIFT: c_int = 8;
770pub const G_OPTION_REMAINING: &[u8] = b"\0";
771pub const G_PDP_ENDIAN: c_int = 3412;
772pub const G_PI: c_double = 3.141593;
773pub const G_PI_2: c_double = 1.570796;
774pub const G_PI_4: c_double = 0.785398;
775pub const G_PRIORITY_DEFAULT: c_int = 0;
776pub const G_PRIORITY_DEFAULT_IDLE: c_int = 200;
777pub const G_PRIORITY_HIGH: c_int = -100;
778pub const G_PRIORITY_HIGH_IDLE: c_int = 100;
779pub const G_PRIORITY_LOW: c_int = 300;
780pub const G_REF_COUNT_INIT: c_int = -1;
781pub const G_SOURCE_CONTINUE: gboolean = GTRUE;
782pub const G_SOURCE_REMOVE: gboolean = GFALSE;
783pub const G_SQRT2: c_double = 1.414214;
784pub const G_STR_DELIMITERS: &[u8] = b"_-|> <.\0";
785pub const GLIB_SYSDEF_AF_INET: c_int = 2;
786pub const GLIB_SYSDEF_AF_INET6: c_int = 10;
787pub const GLIB_SYSDEF_AF_UNIX: c_int = 1;
788pub const GLIB_SYSDEF_MSG_DONTROUTE: c_int = 4;
789pub const GLIB_SYSDEF_MSG_OOB: c_int = 1;
790pub const GLIB_SYSDEF_MSG_PEEK: c_int = 2;
791pub const G_TEST_OPTION_ISOLATE_DIRS: &[u8] = b"isolate_dirs\0";
792pub const G_TEST_OPTION_NONFATAL_ASSERTIONS: &[u8] = b"nonfatal-assertions\0";
793pub const G_TEST_OPTION_NO_PRGNAME: &[u8] = b"no_g_set_prgname\0";
794pub const G_TIME_SPAN_DAY: i64 = 86400000000;
795pub const G_TIME_SPAN_HOUR: i64 = 3600000000;
796pub const G_TIME_SPAN_MILLISECOND: i64 = 1000;
797pub const G_TIME_SPAN_MINUTE: i64 = 60000000;
798pub const G_TIME_SPAN_SECOND: i64 = 1000000;
799pub const G_UNICHAR_MAX_DECOMPOSITION_LENGTH: c_int = 18;
800pub const G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: &[u8] = b":/?#[]@\0";
801pub const G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: &[u8] = b"!$&'()*+,;=\0";
802pub const G_USEC_PER_SEC: c_int = 1000000;
803pub const G_WIN32_MSG_HANDLE: c_int = 19981206;
804
805pub type GAsciiType = c_uint;
807pub const G_ASCII_ALNUM: GAsciiType = 1;
808pub const G_ASCII_ALPHA: GAsciiType = 2;
809pub const G_ASCII_CNTRL: GAsciiType = 4;
810pub const G_ASCII_DIGIT: GAsciiType = 8;
811pub const G_ASCII_GRAPH: GAsciiType = 16;
812pub const G_ASCII_LOWER: GAsciiType = 32;
813pub const G_ASCII_PRINT: GAsciiType = 64;
814pub const G_ASCII_PUNCT: GAsciiType = 128;
815pub const G_ASCII_SPACE: GAsciiType = 256;
816pub const G_ASCII_UPPER: GAsciiType = 512;
817pub const G_ASCII_XDIGIT: GAsciiType = 1024;
818
819pub type GFileSetContentsFlags = c_uint;
820pub const G_FILE_SET_CONTENTS_NONE: GFileSetContentsFlags = 0;
821pub const G_FILE_SET_CONTENTS_CONSISTENT: GFileSetContentsFlags = 1;
822pub const G_FILE_SET_CONTENTS_DURABLE: GFileSetContentsFlags = 2;
823pub const G_FILE_SET_CONTENTS_ONLY_EXISTING: GFileSetContentsFlags = 4;
824
825pub type GFileTest = c_uint;
826pub const G_FILE_TEST_IS_REGULAR: GFileTest = 1;
827pub const G_FILE_TEST_IS_SYMLINK: GFileTest = 2;
828pub const G_FILE_TEST_IS_DIR: GFileTest = 4;
829pub const G_FILE_TEST_IS_EXECUTABLE: GFileTest = 8;
830pub const G_FILE_TEST_EXISTS: GFileTest = 16;
831
832pub type GFormatSizeFlags = c_uint;
833pub const G_FORMAT_SIZE_DEFAULT: GFormatSizeFlags = 0;
834pub const G_FORMAT_SIZE_LONG_FORMAT: GFormatSizeFlags = 1;
835pub const G_FORMAT_SIZE_IEC_UNITS: GFormatSizeFlags = 2;
836pub const G_FORMAT_SIZE_BITS: GFormatSizeFlags = 4;
837pub const G_FORMAT_SIZE_ONLY_VALUE: GFormatSizeFlags = 8;
838pub const G_FORMAT_SIZE_ONLY_UNIT: GFormatSizeFlags = 16;
839
840pub type GHookFlagMask = c_uint;
841pub const G_HOOK_FLAG_ACTIVE: GHookFlagMask = 1;
842pub const G_HOOK_FLAG_IN_CALL: GHookFlagMask = 2;
843pub const G_HOOK_FLAG_RESERVED1: GHookFlagMask = 4;
844
845pub type GIOCondition = c_uint;
846pub const G_IO_IN: GIOCondition = 1;
847pub const G_IO_OUT: GIOCondition = 4;
848pub const G_IO_PRI: GIOCondition = 2;
849pub const G_IO_ERR: GIOCondition = 8;
850pub const G_IO_HUP: GIOCondition = 16;
851pub const G_IO_NVAL: GIOCondition = 32;
852
853pub type GIOFlags = c_uint;
854pub const G_IO_FLAG_NONE: GIOFlags = 0;
855pub const G_IO_FLAG_APPEND: GIOFlags = 1;
856pub const G_IO_FLAG_NONBLOCK: GIOFlags = 2;
857pub const G_IO_FLAG_IS_READABLE: GIOFlags = 4;
858pub const G_IO_FLAG_IS_WRITABLE: GIOFlags = 8;
859pub const G_IO_FLAG_IS_WRITEABLE: GIOFlags = 8;
860pub const G_IO_FLAG_IS_SEEKABLE: GIOFlags = 16;
861pub const G_IO_FLAG_MASK: GIOFlags = 31;
862pub const G_IO_FLAG_GET_MASK: GIOFlags = 31;
863pub const G_IO_FLAG_SET_MASK: GIOFlags = 3;
864
865pub type GKeyFileFlags = c_uint;
866pub const G_KEY_FILE_NONE: GKeyFileFlags = 0;
867pub const G_KEY_FILE_KEEP_COMMENTS: GKeyFileFlags = 1;
868pub const G_KEY_FILE_KEEP_TRANSLATIONS: GKeyFileFlags = 2;
869
870pub type GLogLevelFlags = c_uint;
871pub const G_LOG_FLAG_RECURSION: GLogLevelFlags = 1;
872pub const G_LOG_FLAG_FATAL: GLogLevelFlags = 2;
873pub const G_LOG_LEVEL_ERROR: GLogLevelFlags = 4;
874pub const G_LOG_LEVEL_CRITICAL: GLogLevelFlags = 8;
875pub const G_LOG_LEVEL_WARNING: GLogLevelFlags = 16;
876pub const G_LOG_LEVEL_MESSAGE: GLogLevelFlags = 32;
877pub const G_LOG_LEVEL_INFO: GLogLevelFlags = 64;
878pub const G_LOG_LEVEL_DEBUG: GLogLevelFlags = 128;
879pub const G_LOG_LEVEL_MASK: GLogLevelFlags = 4294967292;
880
881pub type GMainContextFlags = c_uint;
882pub const G_MAIN_CONTEXT_FLAGS_NONE: GMainContextFlags = 0;
883pub const G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING: GMainContextFlags = 1;
884
885pub type GMarkupCollectType = c_uint;
886pub const G_MARKUP_COLLECT_INVALID: GMarkupCollectType = 0;
887pub const G_MARKUP_COLLECT_STRING: GMarkupCollectType = 1;
888pub const G_MARKUP_COLLECT_STRDUP: GMarkupCollectType = 2;
889pub const G_MARKUP_COLLECT_BOOLEAN: GMarkupCollectType = 3;
890pub const G_MARKUP_COLLECT_TRISTATE: GMarkupCollectType = 4;
891pub const G_MARKUP_COLLECT_OPTIONAL: GMarkupCollectType = 65536;
892
893pub type GMarkupParseFlags = c_uint;
894pub const G_MARKUP_DEFAULT_FLAGS: GMarkupParseFlags = 0;
895pub const G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: GMarkupParseFlags = 1;
896pub const G_MARKUP_TREAT_CDATA_AS_TEXT: GMarkupParseFlags = 2;
897pub const G_MARKUP_PREFIX_ERROR_POSITION: GMarkupParseFlags = 4;
898pub const G_MARKUP_IGNORE_QUALIFIED: GMarkupParseFlags = 8;
899
900pub type GOptionFlags = c_uint;
901pub const G_OPTION_FLAG_NONE: GOptionFlags = 0;
902pub const G_OPTION_FLAG_HIDDEN: GOptionFlags = 1;
903pub const G_OPTION_FLAG_IN_MAIN: GOptionFlags = 2;
904pub const G_OPTION_FLAG_REVERSE: GOptionFlags = 4;
905pub const G_OPTION_FLAG_NO_ARG: GOptionFlags = 8;
906pub const G_OPTION_FLAG_FILENAME: GOptionFlags = 16;
907pub const G_OPTION_FLAG_OPTIONAL_ARG: GOptionFlags = 32;
908pub const G_OPTION_FLAG_NOALIAS: GOptionFlags = 64;
909#[cfg(feature = "v2_84")]
910#[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
911pub const G_OPTION_FLAG_DEPRECATED: GOptionFlags = 128;
912
913pub type GRegexCompileFlags = c_uint;
914pub const G_REGEX_DEFAULT: GRegexCompileFlags = 0;
915pub const G_REGEX_CASELESS: GRegexCompileFlags = 1;
916pub const G_REGEX_MULTILINE: GRegexCompileFlags = 2;
917pub const G_REGEX_DOTALL: GRegexCompileFlags = 4;
918pub const G_REGEX_EXTENDED: GRegexCompileFlags = 8;
919pub const G_REGEX_ANCHORED: GRegexCompileFlags = 16;
920pub const G_REGEX_DOLLAR_ENDONLY: GRegexCompileFlags = 32;
921pub const G_REGEX_UNGREEDY: GRegexCompileFlags = 512;
922pub const G_REGEX_RAW: GRegexCompileFlags = 2048;
923pub const G_REGEX_NO_AUTO_CAPTURE: GRegexCompileFlags = 4096;
924pub const G_REGEX_OPTIMIZE: GRegexCompileFlags = 8192;
925pub const G_REGEX_FIRSTLINE: GRegexCompileFlags = 262144;
926pub const G_REGEX_DUPNAMES: GRegexCompileFlags = 524288;
927pub const G_REGEX_NEWLINE_CR: GRegexCompileFlags = 1048576;
928pub const G_REGEX_NEWLINE_LF: GRegexCompileFlags = 2097152;
929pub const G_REGEX_NEWLINE_RESERVED1: GRegexCompileFlags = 4194304;
930
931pub type GRegexMatchFlags = c_uint;
932pub const G_REGEX_MATCH_DEFAULT: GRegexMatchFlags = 0;
933pub const G_REGEX_MATCH_ANCHORED: GRegexMatchFlags = 16;
934pub const G_REGEX_MATCH_NOTBOL: GRegexMatchFlags = 128;
935pub const G_REGEX_MATCH_NOTEOL: GRegexMatchFlags = 256;
936pub const G_REGEX_MATCH_NOTEMPTY: GRegexMatchFlags = 1024;
937pub const G_REGEX_MATCH_PARTIAL: GRegexMatchFlags = 32768;
938pub const G_REGEX_MATCH_NEWLINE_CR: GRegexMatchFlags = 1048576;
939pub const G_REGEX_MATCH_NEWLINE_LF: GRegexMatchFlags = 2097152;
940pub const G_REGEX_MATCH_NEWLINE_CRLF: GRegexMatchFlags = 3145728;
941pub const G_REGEX_MATCH_NEWLINE_ANY: GRegexMatchFlags = 4194304;
942pub const G_REGEX_MATCH_NEWLINE_ANYCRLF: GRegexMatchFlags = 5242880;
943pub const G_REGEX_MATCH_BSR_ANYCRLF: GRegexMatchFlags = 8388608;
944pub const G_REGEX_MATCH_BSR_ANY: GRegexMatchFlags = 16777216;
945pub const G_REGEX_MATCH_PARTIAL_SOFT: GRegexMatchFlags = 32768;
946pub const G_REGEX_MATCH_PARTIAL_HARD: GRegexMatchFlags = 134217728;
947pub const G_REGEX_MATCH_NOTEMPTY_ATSTART: GRegexMatchFlags = 268435456;
948
949pub type GSpawnFlags = c_uint;
950pub const G_SPAWN_DEFAULT: GSpawnFlags = 0;
951pub const G_SPAWN_LEAVE_DESCRIPTORS_OPEN: GSpawnFlags = 1;
952pub const G_SPAWN_DO_NOT_REAP_CHILD: GSpawnFlags = 2;
953pub const G_SPAWN_SEARCH_PATH: GSpawnFlags = 4;
954pub const G_SPAWN_STDOUT_TO_DEV_NULL: GSpawnFlags = 8;
955pub const G_SPAWN_STDERR_TO_DEV_NULL: GSpawnFlags = 16;
956pub const G_SPAWN_CHILD_INHERITS_STDIN: GSpawnFlags = 32;
957pub const G_SPAWN_FILE_AND_ARGV_ZERO: GSpawnFlags = 64;
958pub const G_SPAWN_SEARCH_PATH_FROM_ENVP: GSpawnFlags = 128;
959pub const G_SPAWN_CLOEXEC_PIPES: GSpawnFlags = 256;
960#[cfg(feature = "v2_74")]
961#[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
962pub const G_SPAWN_CHILD_INHERITS_STDOUT: GSpawnFlags = 512;
963#[cfg(feature = "v2_74")]
964#[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
965pub const G_SPAWN_CHILD_INHERITS_STDERR: GSpawnFlags = 1024;
966#[cfg(feature = "v2_74")]
967#[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
968pub const G_SPAWN_STDIN_FROM_DEV_NULL: GSpawnFlags = 2048;
969
970pub type GTestSubprocessFlags = c_uint;
971pub const G_TEST_SUBPROCESS_DEFAULT: GTestSubprocessFlags = 0;
972pub const G_TEST_SUBPROCESS_INHERIT_STDIN: GTestSubprocessFlags = 1;
973pub const G_TEST_SUBPROCESS_INHERIT_STDOUT: GTestSubprocessFlags = 2;
974pub const G_TEST_SUBPROCESS_INHERIT_STDERR: GTestSubprocessFlags = 4;
975pub const G_TEST_SUBPROCESS_INHERIT_DESCRIPTORS: GTestSubprocessFlags = 8;
976
977pub type GTestTrapFlags = c_uint;
978pub const G_TEST_TRAP_DEFAULT: GTestTrapFlags = 0;
979pub const G_TEST_TRAP_SILENCE_STDOUT: GTestTrapFlags = 128;
980pub const G_TEST_TRAP_SILENCE_STDERR: GTestTrapFlags = 256;
981pub const G_TEST_TRAP_INHERIT_STDIN: GTestTrapFlags = 512;
982
983pub type GTraverseFlags = c_uint;
984pub const G_TRAVERSE_LEAVES: GTraverseFlags = 1;
985pub const G_TRAVERSE_NON_LEAVES: GTraverseFlags = 2;
986pub const G_TRAVERSE_ALL: GTraverseFlags = 3;
987pub const G_TRAVERSE_MASK: GTraverseFlags = 3;
988pub const G_TRAVERSE_LEAFS: GTraverseFlags = 1;
989pub const G_TRAVERSE_NON_LEAFS: GTraverseFlags = 2;
990
991pub type GUriFlags = c_uint;
992pub const G_URI_FLAGS_NONE: GUriFlags = 0;
993pub const G_URI_FLAGS_PARSE_RELAXED: GUriFlags = 1;
994pub const G_URI_FLAGS_HAS_PASSWORD: GUriFlags = 2;
995pub const G_URI_FLAGS_HAS_AUTH_PARAMS: GUriFlags = 4;
996pub const G_URI_FLAGS_ENCODED: GUriFlags = 8;
997pub const G_URI_FLAGS_NON_DNS: GUriFlags = 16;
998pub const G_URI_FLAGS_ENCODED_QUERY: GUriFlags = 32;
999pub const G_URI_FLAGS_ENCODED_PATH: GUriFlags = 64;
1000pub const G_URI_FLAGS_ENCODED_FRAGMENT: GUriFlags = 128;
1001pub const G_URI_FLAGS_SCHEME_NORMALIZE: GUriFlags = 256;
1002
1003pub type GUriHideFlags = c_uint;
1004pub const G_URI_HIDE_NONE: GUriHideFlags = 0;
1005pub const G_URI_HIDE_USERINFO: GUriHideFlags = 1;
1006pub const G_URI_HIDE_PASSWORD: GUriHideFlags = 2;
1007pub const G_URI_HIDE_AUTH_PARAMS: GUriHideFlags = 4;
1008pub const G_URI_HIDE_QUERY: GUriHideFlags = 8;
1009pub const G_URI_HIDE_FRAGMENT: GUriHideFlags = 16;
1010
1011pub type GUriParamsFlags = c_uint;
1012pub const G_URI_PARAMS_NONE: GUriParamsFlags = 0;
1013pub const G_URI_PARAMS_CASE_INSENSITIVE: GUriParamsFlags = 1;
1014pub const G_URI_PARAMS_WWW_FORM: GUriParamsFlags = 2;
1015pub const G_URI_PARAMS_PARSE_RELAXED: GUriParamsFlags = 4;
1016
1017#[repr(C)]
1019#[allow(dead_code)]
1020pub struct GDoubleIEEE754 {
1021 _data: [u8; 0],
1022 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1023}
1024
1025impl ::std::fmt::Debug for GDoubleIEEE754 {
1026 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1027 f.debug_struct(&format!("GDoubleIEEE754 @ {self:p}"))
1028 .finish()
1029 }
1030}
1031
1032#[repr(C)]
1033#[allow(dead_code)]
1034pub struct GFloatIEEE754 {
1035 _data: [u8; 0],
1036 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1037}
1038
1039impl ::std::fmt::Debug for GFloatIEEE754 {
1040 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1041 f.debug_struct(&format!("GFloatIEEE754 @ {self:p}"))
1042 .finish()
1043 }
1044}
1045
1046#[derive(Copy, Clone)]
1047#[repr(C)]
1048pub union GMutex {
1049 pub p: gpointer,
1050 pub i: [c_uint; 2],
1051}
1052
1053impl ::std::fmt::Debug for GMutex {
1054 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1055 f.debug_struct(&format!("GMutex @ {self:p}")).finish()
1056 }
1057}
1058
1059#[derive(Copy, Clone)]
1060#[repr(C)]
1061pub union GTokenValue {
1062 pub v_symbol: gpointer,
1063 pub v_identifier: *mut c_char,
1064 pub v_binary: c_ulong,
1065 pub v_octal: c_ulong,
1066 pub v_int: c_ulong,
1067 pub v_int64: u64,
1068 pub v_float: c_double,
1069 pub v_hex: c_ulong,
1070 pub v_string: *mut c_char,
1071 pub v_comment: *mut c_char,
1072 pub v_char: c_uchar,
1073 pub v_error: c_uint,
1074}
1075
1076impl ::std::fmt::Debug for GTokenValue {
1077 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1078 f.debug_struct(&format!("GTokenValue @ {self:p}"))
1079 .field("v_symbol", unsafe { &self.v_symbol })
1080 .field("v_identifier", unsafe { &self.v_identifier })
1081 .field("v_binary", unsafe { &self.v_binary })
1082 .field("v_octal", unsafe { &self.v_octal })
1083 .field("v_int", unsafe { &self.v_int })
1084 .field("v_int64", unsafe { &self.v_int64 })
1085 .field("v_float", unsafe { &self.v_float })
1086 .field("v_hex", unsafe { &self.v_hex })
1087 .field("v_string", unsafe { &self.v_string })
1088 .field("v_comment", unsafe { &self.v_comment })
1089 .field("v_char", unsafe { &self.v_char })
1090 .field("v_error", unsafe { &self.v_error })
1091 .finish()
1092 }
1093}
1094
1095#[derive(Copy, Clone)]
1096#[repr(C)]
1097pub union GVariantBuilder_u {
1098 pub s: GVariantBuilder_u_s,
1099 pub x: [uintptr_t; 16],
1100}
1101
1102impl ::std::fmt::Debug for GVariantBuilder_u {
1103 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1104 f.debug_struct(&format!("GVariantBuilder_u @ {self:p}"))
1105 .field("s", unsafe { &self.s })
1106 .field("x", unsafe { &self.x })
1107 .finish()
1108 }
1109}
1110
1111#[derive(Copy, Clone)]
1112#[repr(C)]
1113pub union GVariantDict_u {
1114 pub s: GVariantDict_u_s,
1115 pub x: [uintptr_t; 16],
1116}
1117
1118impl ::std::fmt::Debug for GVariantDict_u {
1119 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1120 f.debug_struct(&format!("GVariantDict_u @ {self:p}"))
1121 .field("s", unsafe { &self.s })
1122 .field("x", unsafe { &self.x })
1123 .finish()
1124 }
1125}
1126
1127pub type GCacheDestroyFunc = Option<unsafe extern "C" fn(gpointer)>;
1129pub type GCacheDupFunc = Option<unsafe extern "C" fn(gpointer) -> gpointer>;
1130pub type GCacheNewFunc = Option<unsafe extern "C" fn(gpointer) -> gpointer>;
1131pub type GChildWatchFunc = Option<unsafe extern "C" fn(GPid, c_int, gpointer)>;
1132pub type GClearHandleFunc = Option<unsafe extern "C" fn(c_uint)>;
1133pub type GCompareDataFunc =
1134 Option<unsafe extern "C" fn(gconstpointer, gconstpointer, gpointer) -> c_int>;
1135pub type GCompareFunc = Option<unsafe extern "C" fn(gconstpointer, gconstpointer) -> c_int>;
1136pub type GCompletionFunc = Option<unsafe extern "C" fn(gpointer) -> *mut c_char>;
1137pub type GCompletionStrncmpFunc =
1138 Option<unsafe extern "C" fn(*const c_char, *const c_char, size_t) -> c_int>;
1139pub type GCopyFunc = Option<unsafe extern "C" fn(gconstpointer, gpointer) -> gpointer>;
1140pub type GDataForeachFunc = Option<unsafe extern "C" fn(GQuark, gpointer, gpointer)>;
1141pub type GDestroyNotify = Option<unsafe extern "C" fn(gpointer)>;
1142pub type GDuplicateFunc = Option<unsafe extern "C" fn(gpointer, gpointer) -> gpointer>;
1143pub type GEqualFunc = Option<unsafe extern "C" fn(gconstpointer, gconstpointer) -> gboolean>;
1144pub type GEqualFuncFull =
1145 Option<unsafe extern "C" fn(gconstpointer, gconstpointer, gpointer) -> gboolean>;
1146pub type GErrorClearFunc = Option<unsafe extern "C" fn(*mut GError)>;
1147pub type GErrorCopyFunc = Option<unsafe extern "C" fn(*const GError, *mut GError)>;
1148pub type GErrorInitFunc = Option<unsafe extern "C" fn(*mut GError)>;
1149pub type GFreeFunc = Option<unsafe extern "C" fn(gpointer)>;
1150pub type GFunc = Option<unsafe extern "C" fn(gpointer, gpointer)>;
1151pub type GHFunc = Option<unsafe extern "C" fn(gpointer, gpointer, gpointer)>;
1152pub type GHRFunc = Option<unsafe extern "C" fn(gpointer, gpointer, gpointer) -> gboolean>;
1153pub type GHashFunc = Option<unsafe extern "C" fn(gconstpointer) -> c_uint>;
1154pub type GHookCheckFunc = Option<unsafe extern "C" fn(gpointer) -> gboolean>;
1155pub type GHookCheckMarshaller = Option<unsafe extern "C" fn(*mut GHook, gpointer) -> gboolean>;
1156pub type GHookCompareFunc = Option<unsafe extern "C" fn(*mut GHook, *mut GHook) -> c_int>;
1157pub type GHookFinalizeFunc = Option<unsafe extern "C" fn(*mut GHookList, *mut GHook)>;
1158pub type GHookFindFunc = Option<unsafe extern "C" fn(*mut GHook, gpointer) -> gboolean>;
1159pub type GHookFunc = Option<unsafe extern "C" fn(gpointer)>;
1160pub type GHookMarshaller = Option<unsafe extern "C" fn(*mut GHook, gpointer)>;
1161pub type GIOFunc =
1162 Option<unsafe extern "C" fn(*mut GIOChannel, GIOCondition, gpointer) -> gboolean>;
1163pub type GLogFunc =
1164 Option<unsafe extern "C" fn(*const c_char, GLogLevelFlags, *const c_char, gpointer)>;
1165pub type GLogWriterFunc = Option<
1166 unsafe extern "C" fn(GLogLevelFlags, *const GLogField, size_t, gpointer) -> GLogWriterOutput,
1167>;
1168pub type GNodeForeachFunc = Option<unsafe extern "C" fn(*mut GNode, gpointer)>;
1169pub type GNodeTraverseFunc = Option<unsafe extern "C" fn(*mut GNode, gpointer) -> gboolean>;
1170pub type GOptionArgFunc = Option<
1171 unsafe extern "C" fn(*const c_char, *const c_char, gpointer, *mut *mut GError) -> gboolean,
1172>;
1173pub type GOptionErrorFunc = Option<
1174 unsafe extern "C" fn(*mut GOptionContext, *mut GOptionGroup, gpointer, *mut *mut GError),
1175>;
1176pub type GOptionParseFunc = Option<
1177 unsafe extern "C" fn(
1178 *mut GOptionContext,
1179 *mut GOptionGroup,
1180 gpointer,
1181 *mut *mut GError,
1182 ) -> gboolean,
1183>;
1184pub type GPollFunc = Option<unsafe extern "C" fn(*mut GPollFD, c_uint, c_int) -> c_int>;
1185pub type GPrintFunc = Option<unsafe extern "C" fn(*const c_char)>;
1186pub type GRegexEvalCallback =
1187 Option<unsafe extern "C" fn(*const GMatchInfo, *mut GString, gpointer) -> gboolean>;
1188pub type GScannerMsgFunc = Option<unsafe extern "C" fn(*mut GScanner, *mut c_char, gboolean)>;
1189pub type GSequenceIterCompareFunc =
1190 Option<unsafe extern "C" fn(*mut GSequenceIter, *mut GSequenceIter, gpointer) -> c_int>;
1191pub type GSourceDisposeFunc = Option<unsafe extern "C" fn(*mut GSource)>;
1192pub type GSourceDummyMarshal = Option<unsafe extern "C" fn()>;
1193pub type GSourceFunc = Option<unsafe extern "C" fn(gpointer) -> gboolean>;
1194pub type GSourceFuncsCheckFunc = Option<unsafe extern "C" fn(*mut GSource) -> gboolean>;
1195pub type GSourceFuncsDispatchFunc =
1196 Option<unsafe extern "C" fn(*mut GSource, GSourceFunc, gpointer) -> gboolean>;
1197pub type GSourceFuncsFinalizeFunc = Option<unsafe extern "C" fn(*mut GSource)>;
1198pub type GSourceFuncsPrepareFunc =
1199 Option<unsafe extern "C" fn(*mut GSource, *mut c_int) -> gboolean>;
1200pub type GSourceOnceFunc = Option<unsafe extern "C" fn(gpointer)>;
1201pub type GSpawnChildSetupFunc = Option<unsafe extern "C" fn(gpointer)>;
1202pub type GTestDataFunc = Option<unsafe extern "C" fn(gconstpointer)>;
1203pub type GTestFixtureFunc = Option<unsafe extern "C" fn(gpointer, gconstpointer)>;
1204pub type GTestFunc = Option<unsafe extern "C" fn()>;
1205pub type GTestLogFatalFunc = Option<
1206 unsafe extern "C" fn(*const c_char, GLogLevelFlags, *const c_char, gpointer) -> gboolean,
1207>;
1208pub type GThreadFunc = Option<unsafe extern "C" fn(gpointer) -> gpointer>;
1209pub type GTranslateFunc = Option<unsafe extern "C" fn(*const c_char, gpointer) -> *const c_char>;
1210pub type GTraverseFunc = Option<unsafe extern "C" fn(gpointer, gpointer, gpointer) -> gboolean>;
1211pub type GTraverseNodeFunc = Option<unsafe extern "C" fn(*mut GTreeNode, gpointer) -> gboolean>;
1212pub type GUnixFDSourceFunc =
1213 Option<unsafe extern "C" fn(c_int, GIOCondition, gpointer) -> gboolean>;
1214pub type GVoidFunc = Option<unsafe extern "C" fn()>;
1215
1216#[repr(C)]
1218#[allow(dead_code)]
1219pub struct _GAllocator {
1220 _data: [u8; 0],
1221 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1222}
1223
1224pub type GAllocator = _GAllocator;
1225
1226#[derive(Copy, Clone)]
1227#[repr(C)]
1228pub struct GArray {
1229 pub data: *mut c_char,
1230 pub len: c_uint,
1231}
1232
1233impl ::std::fmt::Debug for GArray {
1234 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1235 f.debug_struct(&format!("GArray @ {self:p}"))
1236 .field("data", &self.data)
1237 .field("len", &self.len)
1238 .finish()
1239 }
1240}
1241
1242#[repr(C)]
1243#[allow(dead_code)]
1244pub struct _GAsyncQueue {
1245 _data: [u8; 0],
1246 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1247}
1248
1249pub type GAsyncQueue = _GAsyncQueue;
1250
1251#[repr(C)]
1252#[allow(dead_code)]
1253pub struct GBookmarkFile {
1254 _data: [u8; 0],
1255 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1256}
1257
1258impl ::std::fmt::Debug for GBookmarkFile {
1259 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1260 f.debug_struct(&format!("GBookmarkFile @ {self:p}"))
1261 .finish()
1262 }
1263}
1264
1265#[derive(Copy, Clone)]
1266#[repr(C)]
1267pub struct GByteArray {
1268 pub data: *mut u8,
1269 pub len: c_uint,
1270}
1271
1272impl ::std::fmt::Debug for GByteArray {
1273 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1274 f.debug_struct(&format!("GByteArray @ {self:p}"))
1275 .field("data", &self.data)
1276 .field("len", &self.len)
1277 .finish()
1278 }
1279}
1280
1281#[repr(C)]
1282#[allow(dead_code)]
1283pub struct GBytes {
1284 _data: [u8; 0],
1285 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1286}
1287
1288impl ::std::fmt::Debug for GBytes {
1289 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1290 f.debug_struct(&format!("GBytes @ {self:p}")).finish()
1291 }
1292}
1293
1294#[repr(C)]
1295#[allow(dead_code)]
1296pub struct _GCache {
1297 _data: [u8; 0],
1298 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1299}
1300
1301pub type GCache = _GCache;
1302
1303#[repr(C)]
1304#[allow(dead_code)]
1305pub struct GChecksum {
1306 _data: [u8; 0],
1307 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1308}
1309
1310impl ::std::fmt::Debug for GChecksum {
1311 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1312 f.debug_struct(&format!("GChecksum @ {self:p}")).finish()
1313 }
1314}
1315
1316#[derive(Copy, Clone)]
1317#[repr(C)]
1318pub struct GCompletion {
1319 pub items: *mut GList,
1320 pub func: GCompletionFunc,
1321 pub prefix: *mut c_char,
1322 pub cache: *mut GList,
1323 pub strncmp_func: GCompletionStrncmpFunc,
1324}
1325
1326impl ::std::fmt::Debug for GCompletion {
1327 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1328 f.debug_struct(&format!("GCompletion @ {self:p}"))
1329 .field("items", &self.items)
1330 .field("func", &self.func)
1331 .field("prefix", &self.prefix)
1332 .field("cache", &self.cache)
1333 .field("strncmp_func", &self.strncmp_func)
1334 .finish()
1335 }
1336}
1337
1338#[derive(Copy, Clone)]
1339#[repr(C)]
1340pub struct GCond {
1341 pub p: gpointer,
1342 pub i: [c_uint; 2],
1343}
1344
1345impl ::std::fmt::Debug for GCond {
1346 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1347 f.debug_struct(&format!("GCond @ {self:p}")).finish()
1348 }
1349}
1350
1351#[repr(C)]
1352#[allow(dead_code)]
1353pub struct _GData {
1354 _data: [u8; 0],
1355 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1356}
1357
1358pub type GData = _GData;
1359
1360#[derive(Copy, Clone)]
1361#[repr(C)]
1362pub struct GDate {
1363 pub julian_days: c_uint,
1364 pub flags_dmy: c_uint,
1365}
1366
1367impl ::std::fmt::Debug for GDate {
1368 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1369 f.debug_struct(&format!("GDate @ {self:p}"))
1370 .field("julian_days", &self.julian_days)
1371 .field("flags_dmy", &self.flags_dmy)
1372 .finish()
1373 }
1374}
1375
1376#[repr(C)]
1377#[allow(dead_code)]
1378pub struct GDateTime {
1379 _data: [u8; 0],
1380 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1381}
1382
1383impl ::std::fmt::Debug for GDateTime {
1384 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1385 f.debug_struct(&format!("GDateTime @ {self:p}")).finish()
1386 }
1387}
1388
1389#[derive(Copy, Clone)]
1390#[repr(C)]
1391pub struct GDebugKey {
1392 pub key: *const c_char,
1393 pub value: c_uint,
1394}
1395
1396impl ::std::fmt::Debug for GDebugKey {
1397 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1398 f.debug_struct(&format!("GDebugKey @ {self:p}"))
1399 .field("key", &self.key)
1400 .field("value", &self.value)
1401 .finish()
1402 }
1403}
1404
1405#[repr(C)]
1406#[allow(dead_code)]
1407pub struct GDir {
1408 _data: [u8; 0],
1409 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1410}
1411
1412impl ::std::fmt::Debug for GDir {
1413 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1414 f.debug_struct(&format!("GDir @ {self:p}")).finish()
1415 }
1416}
1417
1418#[repr(C)]
1419#[allow(dead_code)]
1420pub struct GDoubleIEEE754_mpn {
1421 pub mantissa_low: c_uint,
1422 _truncated_record_marker: c_void,
1423 }
1425
1426impl ::std::fmt::Debug for GDoubleIEEE754_mpn {
1427 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1428 f.debug_struct(&format!("GDoubleIEEE754_mpn @ {self:p}"))
1429 .field("mantissa_low", &self.mantissa_low)
1430 .finish()
1431 }
1432}
1433
1434#[derive(Copy, Clone)]
1435#[repr(C)]
1436pub struct GError {
1437 pub domain: GQuark,
1438 pub code: c_int,
1439 pub message: *mut c_char,
1440}
1441
1442impl ::std::fmt::Debug for GError {
1443 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1444 f.debug_struct(&format!("GError @ {self:p}"))
1445 .field("domain", &self.domain)
1446 .field("code", &self.code)
1447 .field("message", &self.message)
1448 .finish()
1449 }
1450}
1451
1452#[repr(C)]
1453#[allow(dead_code)]
1454pub struct GFloatIEEE754_mpn {
1455 pub mantissa: c_uint,
1456 _truncated_record_marker: c_void,
1457 }
1459
1460impl ::std::fmt::Debug for GFloatIEEE754_mpn {
1461 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1462 f.debug_struct(&format!("GFloatIEEE754_mpn @ {self:p}"))
1463 .field("mantissa", &self.mantissa)
1464 .finish()
1465 }
1466}
1467
1468#[repr(C)]
1469#[allow(dead_code)]
1470pub struct GHashTable {
1471 _data: [u8; 0],
1472 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1473}
1474
1475impl ::std::fmt::Debug for GHashTable {
1476 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1477 f.debug_struct(&format!("GHashTable @ {self:p}")).finish()
1478 }
1479}
1480
1481#[derive(Copy, Clone)]
1482#[repr(C)]
1483pub struct GHashTableIter {
1484 pub dummy1: gpointer,
1485 pub dummy2: gpointer,
1486 pub dummy3: gpointer,
1487 pub dummy4: c_int,
1488 pub dummy5: gboolean,
1489 pub dummy6: gpointer,
1490}
1491
1492impl ::std::fmt::Debug for GHashTableIter {
1493 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1494 f.debug_struct(&format!("GHashTableIter @ {self:p}"))
1495 .finish()
1496 }
1497}
1498
1499#[repr(C)]
1500#[allow(dead_code)]
1501pub struct GHmac {
1502 _data: [u8; 0],
1503 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1504}
1505
1506impl ::std::fmt::Debug for GHmac {
1507 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1508 f.debug_struct(&format!("GHmac @ {self:p}")).finish()
1509 }
1510}
1511
1512#[derive(Copy, Clone)]
1513#[repr(C)]
1514pub struct GHook {
1515 pub data: gpointer,
1516 pub next: *mut GHook,
1517 pub prev: *mut GHook,
1518 pub ref_count: c_uint,
1519 pub hook_id: c_ulong,
1520 pub flags: c_uint,
1521 pub func: gpointer,
1522 pub destroy: GDestroyNotify,
1523}
1524
1525impl ::std::fmt::Debug for GHook {
1526 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1527 f.debug_struct(&format!("GHook @ {self:p}"))
1528 .field("data", &self.data)
1529 .field("next", &self.next)
1530 .field("prev", &self.prev)
1531 .field("ref_count", &self.ref_count)
1532 .field("hook_id", &self.hook_id)
1533 .field("flags", &self.flags)
1534 .field("func", &self.func)
1535 .field("destroy", &self.destroy)
1536 .finish()
1537 }
1538}
1539
1540#[repr(C)]
1541#[derive(Copy, Clone)]
1542pub struct GHookList {
1543 pub seq_id: c_ulong,
1544 #[cfg(any(not(windows), not(target_pointer_width = "64")))]
1545 pub hook_size_and_setup: gpointer,
1546 #[cfg(all(windows, target_pointer_width = "64"))]
1547 pub hook_size_and_setup: c_ulong,
1548 pub hooks: *mut GHook,
1549 pub dummy3: gpointer,
1550 pub finalize_hook: GHookFinalizeFunc,
1551 pub dummy: [gpointer; 2],
1552}
1553
1554impl ::std::fmt::Debug for GHookList {
1555 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1556 write!(f, "GHookList @ {self:p}")
1557 }
1558}
1559
1560#[repr(C)]
1561#[allow(dead_code)]
1562pub struct _GIConv {
1563 _data: [u8; 0],
1564 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1565}
1566
1567pub type GIConv = *mut _GIConv;
1568
1569#[repr(C)]
1570#[allow(dead_code)]
1571pub struct GIOChannel {
1572 pub ref_count: c_int,
1573 pub funcs: *mut GIOFuncs,
1574 pub encoding: *mut c_char,
1575 pub read_cd: GIConv,
1576 pub write_cd: GIConv,
1577 pub line_term: *mut c_char,
1578 pub line_term_len: c_uint,
1579 pub buf_size: size_t,
1580 pub read_buf: *mut GString,
1581 pub encoded_read_buf: *mut GString,
1582 pub write_buf: *mut GString,
1583 pub partial_write_buf: [c_char; 6],
1584 pub use_buffer: c_uint,
1585 _truncated_record_marker: c_void,
1586 }
1588
1589impl ::std::fmt::Debug for GIOChannel {
1590 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1591 f.debug_struct(&format!("GIOChannel @ {self:p}")).finish()
1592 }
1593}
1594
1595#[derive(Copy, Clone)]
1596#[repr(C)]
1597pub struct GIOFuncs {
1598 pub io_read: Option<
1599 unsafe extern "C" fn(
1600 *mut GIOChannel,
1601 *const c_char,
1602 size_t,
1603 *mut size_t,
1604 *mut *mut GError,
1605 ) -> GIOStatus,
1606 >,
1607 pub io_write: Option<
1608 unsafe extern "C" fn(
1609 *mut GIOChannel,
1610 *const c_char,
1611 size_t,
1612 *mut size_t,
1613 *mut *mut GError,
1614 ) -> GIOStatus,
1615 >,
1616 pub io_seek: Option<
1617 unsafe extern "C" fn(*mut GIOChannel, i64, GSeekType, *mut *mut GError) -> GIOStatus,
1618 >,
1619 pub io_close: Option<unsafe extern "C" fn(*mut GIOChannel, *mut *mut GError) -> GIOStatus>,
1620 pub io_create_watch:
1621 Option<unsafe extern "C" fn(*mut GIOChannel, GIOCondition) -> *mut GSource>,
1622 pub io_free: Option<unsafe extern "C" fn(*mut GIOChannel)>,
1623 pub io_set_flags:
1624 Option<unsafe extern "C" fn(*mut GIOChannel, GIOFlags, *mut *mut GError) -> GIOStatus>,
1625 pub io_get_flags: Option<unsafe extern "C" fn(*mut GIOChannel) -> GIOFlags>,
1626}
1627
1628impl ::std::fmt::Debug for GIOFuncs {
1629 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1630 f.debug_struct(&format!("GIOFuncs @ {self:p}"))
1631 .field("io_read", &self.io_read)
1632 .field("io_write", &self.io_write)
1633 .field("io_seek", &self.io_seek)
1634 .field("io_close", &self.io_close)
1635 .field("io_create_watch", &self.io_create_watch)
1636 .field("io_free", &self.io_free)
1637 .field("io_set_flags", &self.io_set_flags)
1638 .field("io_get_flags", &self.io_get_flags)
1639 .finish()
1640 }
1641}
1642
1643#[repr(C)]
1644#[allow(dead_code)]
1645pub struct GKeyFile {
1646 _data: [u8; 0],
1647 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1648}
1649
1650impl ::std::fmt::Debug for GKeyFile {
1651 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1652 f.debug_struct(&format!("GKeyFile @ {self:p}")).finish()
1653 }
1654}
1655
1656#[derive(Copy, Clone)]
1657#[repr(C)]
1658pub struct GList {
1659 pub data: gpointer,
1660 pub next: *mut GList,
1661 pub prev: *mut GList,
1662}
1663
1664impl ::std::fmt::Debug for GList {
1665 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1666 f.debug_struct(&format!("GList @ {self:p}"))
1667 .field("data", &self.data)
1668 .field("next", &self.next)
1669 .field("prev", &self.prev)
1670 .finish()
1671 }
1672}
1673
1674#[derive(Copy, Clone)]
1675#[repr(C)]
1676pub struct GLogField {
1677 pub key: *const c_char,
1678 pub value: gconstpointer,
1679 pub length: ssize_t,
1680}
1681
1682impl ::std::fmt::Debug for GLogField {
1683 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1684 f.debug_struct(&format!("GLogField @ {self:p}"))
1685 .field("key", &self.key)
1686 .field("value", &self.value)
1687 .field("length", &self.length)
1688 .finish()
1689 }
1690}
1691
1692#[repr(C)]
1693#[allow(dead_code)]
1694pub struct GMainContext {
1695 _data: [u8; 0],
1696 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1697}
1698
1699impl ::std::fmt::Debug for GMainContext {
1700 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1701 f.debug_struct(&format!("GMainContext @ {self:p}")).finish()
1702 }
1703}
1704
1705#[repr(C)]
1706#[allow(dead_code)]
1707pub struct GMainLoop {
1708 _data: [u8; 0],
1709 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1710}
1711
1712impl ::std::fmt::Debug for GMainLoop {
1713 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1714 f.debug_struct(&format!("GMainLoop @ {self:p}")).finish()
1715 }
1716}
1717
1718#[repr(C)]
1719#[allow(dead_code)]
1720pub struct GMappedFile {
1721 _data: [u8; 0],
1722 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1723}
1724
1725impl ::std::fmt::Debug for GMappedFile {
1726 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1727 f.debug_struct(&format!("GMappedFile @ {self:p}")).finish()
1728 }
1729}
1730
1731#[repr(C)]
1732#[allow(dead_code)]
1733pub struct GMarkupParseContext {
1734 _data: [u8; 0],
1735 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1736}
1737
1738impl ::std::fmt::Debug for GMarkupParseContext {
1739 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1740 f.debug_struct(&format!("GMarkupParseContext @ {self:p}"))
1741 .finish()
1742 }
1743}
1744
1745#[derive(Copy, Clone)]
1746#[repr(C)]
1747pub struct GMarkupParser {
1748 pub start_element: Option<
1749 unsafe extern "C" fn(
1750 *mut GMarkupParseContext,
1751 *const c_char,
1752 *mut *const c_char,
1753 *mut *const c_char,
1754 gpointer,
1755 *mut *mut GError,
1756 ),
1757 >,
1758 pub end_element: Option<
1759 unsafe extern "C" fn(*mut GMarkupParseContext, *const c_char, gpointer, *mut *mut GError),
1760 >,
1761 pub text: Option<
1762 unsafe extern "C" fn(
1763 *mut GMarkupParseContext,
1764 *const c_char,
1765 size_t,
1766 gpointer,
1767 *mut *mut GError,
1768 ),
1769 >,
1770 pub passthrough: Option<
1771 unsafe extern "C" fn(
1772 *mut GMarkupParseContext,
1773 *const c_char,
1774 size_t,
1775 gpointer,
1776 *mut *mut GError,
1777 ),
1778 >,
1779 pub error: Option<unsafe extern "C" fn(*mut GMarkupParseContext, *mut GError, gpointer)>,
1780}
1781
1782impl ::std::fmt::Debug for GMarkupParser {
1783 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1784 f.debug_struct(&format!("GMarkupParser @ {self:p}"))
1785 .field("start_element", &self.start_element)
1786 .field("end_element", &self.end_element)
1787 .field("text", &self.text)
1788 .field("passthrough", &self.passthrough)
1789 .field("error", &self.error)
1790 .finish()
1791 }
1792}
1793
1794#[repr(C)]
1795#[allow(dead_code)]
1796pub struct GMatchInfo {
1797 _data: [u8; 0],
1798 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1799}
1800
1801impl ::std::fmt::Debug for GMatchInfo {
1802 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1803 f.debug_struct(&format!("GMatchInfo @ {self:p}")).finish()
1804 }
1805}
1806
1807#[repr(C)]
1808#[allow(dead_code)]
1809pub struct _GMemChunk {
1810 _data: [u8; 0],
1811 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1812}
1813
1814pub type GMemChunk = _GMemChunk;
1815
1816#[derive(Copy, Clone)]
1817#[repr(C)]
1818pub struct GMemVTable {
1819 pub malloc: Option<unsafe extern "C" fn(size_t) -> gpointer>,
1820 pub realloc: Option<unsafe extern "C" fn(gpointer, size_t) -> gpointer>,
1821 pub free: Option<unsafe extern "C" fn(gpointer)>,
1822 pub calloc: Option<unsafe extern "C" fn(size_t, size_t) -> gpointer>,
1823 pub try_malloc: Option<unsafe extern "C" fn(size_t) -> gpointer>,
1824 pub try_realloc: Option<unsafe extern "C" fn(gpointer, size_t) -> gpointer>,
1825}
1826
1827impl ::std::fmt::Debug for GMemVTable {
1828 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1829 f.debug_struct(&format!("GMemVTable @ {self:p}"))
1830 .field("malloc", &self.malloc)
1831 .field("realloc", &self.realloc)
1832 .field("free", &self.free)
1833 .field("calloc", &self.calloc)
1834 .field("try_malloc", &self.try_malloc)
1835 .field("try_realloc", &self.try_realloc)
1836 .finish()
1837 }
1838}
1839
1840#[derive(Copy, Clone)]
1841#[repr(C)]
1842pub struct GNode {
1843 pub data: gpointer,
1844 pub next: *mut GNode,
1845 pub prev: *mut GNode,
1846 pub parent: *mut GNode,
1847 pub children: *mut GNode,
1848}
1849
1850impl ::std::fmt::Debug for GNode {
1851 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1852 f.debug_struct(&format!("GNode @ {self:p}"))
1853 .field("data", &self.data)
1854 .field("next", &self.next)
1855 .field("prev", &self.prev)
1856 .field("parent", &self.parent)
1857 .field("children", &self.children)
1858 .finish()
1859 }
1860}
1861
1862#[derive(Copy, Clone)]
1863#[repr(C)]
1864pub struct GOnce {
1865 pub status: GOnceStatus,
1866 pub retval: gpointer,
1867}
1868
1869impl ::std::fmt::Debug for GOnce {
1870 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1871 f.debug_struct(&format!("GOnce @ {self:p}")).finish()
1872 }
1873}
1874
1875#[repr(C)]
1876#[allow(dead_code)]
1877pub struct _GOptionContext {
1878 _data: [u8; 0],
1879 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1880}
1881
1882pub type GOptionContext = _GOptionContext;
1883
1884#[derive(Copy, Clone)]
1885#[repr(C)]
1886pub struct GOptionEntry {
1887 pub long_name: *const c_char,
1888 pub short_name: c_char,
1889 pub flags: c_int,
1890 pub arg: GOptionArg,
1891 pub arg_data: gpointer,
1892 pub description: *const c_char,
1893 pub arg_description: *const c_char,
1894}
1895
1896impl ::std::fmt::Debug for GOptionEntry {
1897 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1898 f.debug_struct(&format!("GOptionEntry @ {self:p}"))
1899 .field("long_name", &self.long_name)
1900 .field("short_name", &self.short_name)
1901 .field("flags", &self.flags)
1902 .field("arg", &self.arg)
1903 .field("arg_data", &self.arg_data)
1904 .field("description", &self.description)
1905 .field("arg_description", &self.arg_description)
1906 .finish()
1907 }
1908}
1909
1910#[repr(C)]
1911#[allow(dead_code)]
1912pub struct GOptionGroup {
1913 _data: [u8; 0],
1914 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1915}
1916
1917impl ::std::fmt::Debug for GOptionGroup {
1918 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1919 f.debug_struct(&format!("GOptionGroup @ {self:p}")).finish()
1920 }
1921}
1922
1923#[derive(Copy, Clone)]
1924#[repr(C)]
1925pub struct GPathBuf {
1926 pub dummy: [gpointer; 8],
1927}
1928
1929impl ::std::fmt::Debug for GPathBuf {
1930 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1931 f.debug_struct(&format!("GPathBuf @ {self:p}")).finish()
1932 }
1933}
1934
1935#[repr(C)]
1936#[allow(dead_code)]
1937pub struct GPatternSpec {
1938 _data: [u8; 0],
1939 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1940}
1941
1942impl ::std::fmt::Debug for GPatternSpec {
1943 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1944 f.debug_struct(&format!("GPatternSpec @ {self:p}")).finish()
1945 }
1946}
1947
1948#[derive(Copy, Clone)]
1949#[repr(C)]
1950pub struct GPrivate {
1951 pub p: gpointer,
1952 pub notify: GDestroyNotify,
1953 pub future: [gpointer; 2],
1954}
1955
1956impl ::std::fmt::Debug for GPrivate {
1957 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1958 f.debug_struct(&format!("GPrivate @ {self:p}")).finish()
1959 }
1960}
1961
1962#[derive(Copy, Clone)]
1963#[repr(C)]
1964pub struct GPtrArray {
1965 pub pdata: *mut gpointer,
1966 pub len: c_uint,
1967}
1968
1969impl ::std::fmt::Debug for GPtrArray {
1970 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1971 f.debug_struct(&format!("GPtrArray @ {self:p}"))
1972 .field("pdata", &self.pdata)
1973 .field("len", &self.len)
1974 .finish()
1975 }
1976}
1977
1978#[derive(Copy, Clone)]
1979#[repr(C)]
1980pub struct GQueue {
1981 pub head: *mut GList,
1982 pub tail: *mut GList,
1983 pub length: c_uint,
1984}
1985
1986impl ::std::fmt::Debug for GQueue {
1987 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1988 f.debug_struct(&format!("GQueue @ {self:p}"))
1989 .field("head", &self.head)
1990 .field("tail", &self.tail)
1991 .field("length", &self.length)
1992 .finish()
1993 }
1994}
1995
1996#[derive(Copy, Clone)]
1997#[repr(C)]
1998pub struct GRWLock {
1999 pub p: gpointer,
2000 pub i: [c_uint; 2],
2001}
2002
2003impl ::std::fmt::Debug for GRWLock {
2004 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2005 f.debug_struct(&format!("GRWLock @ {self:p}")).finish()
2006 }
2007}
2008
2009#[repr(C)]
2010#[allow(dead_code)]
2011pub struct GRand {
2012 _data: [u8; 0],
2013 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2014}
2015
2016impl ::std::fmt::Debug for GRand {
2017 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2018 f.debug_struct(&format!("GRand @ {self:p}")).finish()
2019 }
2020}
2021
2022#[derive(Copy, Clone)]
2023#[repr(C)]
2024pub struct GRecMutex {
2025 pub p: gpointer,
2026 pub i: [c_uint; 2],
2027}
2028
2029impl ::std::fmt::Debug for GRecMutex {
2030 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2031 f.debug_struct(&format!("GRecMutex @ {self:p}")).finish()
2032 }
2033}
2034
2035#[repr(C)]
2036#[allow(dead_code)]
2037pub struct GRegex {
2038 _data: [u8; 0],
2039 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2040}
2041
2042impl ::std::fmt::Debug for GRegex {
2043 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2044 f.debug_struct(&format!("GRegex @ {self:p}")).finish()
2045 }
2046}
2047
2048#[repr(C)]
2049#[allow(dead_code)]
2050pub struct _GRelation {
2051 _data: [u8; 0],
2052 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2053}
2054
2055pub type GRelation = _GRelation;
2056
2057#[derive(Copy, Clone)]
2058#[repr(C)]
2059pub struct GSList {
2060 pub data: gpointer,
2061 pub next: *mut GSList,
2062}
2063
2064impl ::std::fmt::Debug for GSList {
2065 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2066 f.debug_struct(&format!("GSList @ {self:p}"))
2067 .field("data", &self.data)
2068 .field("next", &self.next)
2069 .finish()
2070 }
2071}
2072
2073#[derive(Copy, Clone)]
2074#[repr(C)]
2075pub struct GScanner {
2076 pub user_data: gpointer,
2077 pub max_parse_errors: c_uint,
2078 pub parse_errors: c_uint,
2079 pub input_name: *const c_char,
2080 pub qdata: *mut GData,
2081 pub config: *mut GScannerConfig,
2082 pub token: GTokenType,
2083 pub value: GTokenValue,
2084 pub line: c_uint,
2085 pub position: c_uint,
2086 pub next_token: GTokenType,
2087 pub next_value: GTokenValue,
2088 pub next_line: c_uint,
2089 pub next_position: c_uint,
2090 pub symbol_table: *mut GHashTable,
2091 pub input_fd: c_int,
2092 pub text: *const c_char,
2093 pub text_end: *const c_char,
2094 pub buffer: *mut c_char,
2095 pub scope_id: c_uint,
2096 pub msg_handler: GScannerMsgFunc,
2097}
2098
2099impl ::std::fmt::Debug for GScanner {
2100 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2101 f.debug_struct(&format!("GScanner @ {self:p}"))
2102 .field("user_data", &self.user_data)
2103 .field("max_parse_errors", &self.max_parse_errors)
2104 .field("parse_errors", &self.parse_errors)
2105 .field("input_name", &self.input_name)
2106 .field("qdata", &self.qdata)
2107 .field("config", &self.config)
2108 .field("token", &self.token)
2109 .field("value", &self.value)
2110 .field("line", &self.line)
2111 .field("position", &self.position)
2112 .field("next_token", &self.next_token)
2113 .field("next_value", &self.next_value)
2114 .field("next_line", &self.next_line)
2115 .field("next_position", &self.next_position)
2116 .field("msg_handler", &self.msg_handler)
2117 .finish()
2118 }
2119}
2120
2121#[repr(C)]
2122#[allow(dead_code)]
2123pub struct GScannerConfig {
2124 pub cset_skip_characters: *mut c_char,
2125 pub cset_identifier_first: *mut c_char,
2126 pub cset_identifier_nth: *mut c_char,
2127 pub cpair_comment_single: *mut c_char,
2128 pub case_sensitive: c_uint,
2129 _truncated_record_marker: c_void,
2130 }
2132
2133impl ::std::fmt::Debug for GScannerConfig {
2134 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2135 f.debug_struct(&format!("GScannerConfig @ {self:p}"))
2136 .field("cset_skip_characters", &self.cset_skip_characters)
2137 .field("cset_identifier_first", &self.cset_identifier_first)
2138 .field("cset_identifier_nth", &self.cset_identifier_nth)
2139 .field("cpair_comment_single", &self.cpair_comment_single)
2140 .field("case_sensitive", &self.case_sensitive)
2141 .finish()
2142 }
2143}
2144
2145#[repr(C)]
2146#[allow(dead_code)]
2147pub struct _GSequence {
2148 _data: [u8; 0],
2149 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2150}
2151
2152pub type GSequence = _GSequence;
2153
2154#[repr(C)]
2155#[allow(dead_code)]
2156pub struct _GSequenceIter {
2157 _data: [u8; 0],
2158 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2159}
2160
2161pub type GSequenceIter = _GSequenceIter;
2162
2163#[derive(Copy, Clone)]
2164#[repr(C)]
2165pub struct GSource {
2166 pub callback_data: gpointer,
2167 pub callback_funcs: *mut GSourceCallbackFuncs,
2168 pub source_funcs: *const GSourceFuncs,
2169 pub ref_count: c_uint,
2170 pub context: *mut GMainContext,
2171 pub priority: c_int,
2172 pub flags: c_uint,
2173 pub source_id: c_uint,
2174 pub poll_fds: *mut GSList,
2175 pub prev: *mut GSource,
2176 pub next: *mut GSource,
2177 pub name: *mut c_char,
2178 pub priv_: *mut GSourcePrivate,
2179}
2180
2181impl ::std::fmt::Debug for GSource {
2182 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2183 f.debug_struct(&format!("GSource @ {self:p}")).finish()
2184 }
2185}
2186
2187#[derive(Copy, Clone)]
2188#[repr(C)]
2189pub struct GSourceCallbackFuncs {
2190 pub ref_: Option<unsafe extern "C" fn(gpointer)>,
2191 pub unref: Option<unsafe extern "C" fn(gpointer)>,
2192 pub get: Option<unsafe extern "C" fn(gpointer, *mut GSource, *mut GSourceFunc, *mut gpointer)>,
2193}
2194
2195impl ::std::fmt::Debug for GSourceCallbackFuncs {
2196 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2197 f.debug_struct(&format!("GSourceCallbackFuncs @ {self:p}"))
2198 .field("ref_", &self.ref_)
2199 .field("unref", &self.unref)
2200 .field("get", &self.get)
2201 .finish()
2202 }
2203}
2204
2205#[derive(Copy, Clone)]
2206#[repr(C)]
2207pub struct GSourceFuncs {
2208 pub prepare: GSourceFuncsPrepareFunc,
2209 pub check: GSourceFuncsCheckFunc,
2210 pub dispatch: GSourceFuncsDispatchFunc,
2211 pub finalize: GSourceFuncsFinalizeFunc,
2212 pub closure_callback: GSourceFunc,
2213 pub closure_marshal: GSourceDummyMarshal,
2214}
2215
2216impl ::std::fmt::Debug for GSourceFuncs {
2217 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2218 f.debug_struct(&format!("GSourceFuncs @ {self:p}"))
2219 .field("prepare", &self.prepare)
2220 .field("check", &self.check)
2221 .field("dispatch", &self.dispatch)
2222 .field("finalize", &self.finalize)
2223 .finish()
2224 }
2225}
2226
2227#[repr(C)]
2228#[allow(dead_code)]
2229pub struct _GSourcePrivate {
2230 _data: [u8; 0],
2231 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2232}
2233
2234pub type GSourcePrivate = _GSourcePrivate;
2235
2236#[repr(C)]
2237#[allow(dead_code)]
2238pub struct _GStatBuf {
2239 _data: [u8; 0],
2240 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2241}
2242
2243pub type GStatBuf = _GStatBuf;
2244
2245#[derive(Copy, Clone)]
2246#[repr(C)]
2247pub struct GString {
2248 pub str: *mut c_char,
2249 pub len: size_t,
2250 pub allocated_len: size_t,
2251}
2252
2253impl ::std::fmt::Debug for GString {
2254 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2255 f.debug_struct(&format!("GString @ {self:p}"))
2256 .field("str", &self.str)
2257 .field("len", &self.len)
2258 .field("allocated_len", &self.allocated_len)
2259 .finish()
2260 }
2261}
2262
2263#[repr(C)]
2264#[allow(dead_code)]
2265pub struct _GStringChunk {
2266 _data: [u8; 0],
2267 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2268}
2269
2270pub type GStringChunk = _GStringChunk;
2271
2272#[repr(C)]
2273#[allow(dead_code)]
2274pub struct GStrvBuilder {
2275 _data: [u8; 0],
2276 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2277}
2278
2279impl ::std::fmt::Debug for GStrvBuilder {
2280 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2281 f.debug_struct(&format!("GStrvBuilder @ {self:p}")).finish()
2282 }
2283}
2284
2285#[repr(C)]
2286#[allow(dead_code)]
2287pub struct _GTestCase {
2288 _data: [u8; 0],
2289 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2290}
2291
2292pub type GTestCase = _GTestCase;
2293
2294#[derive(Copy, Clone)]
2295#[repr(C)]
2296pub struct GTestConfig {
2297 pub test_initialized: gboolean,
2298 pub test_quick: gboolean,
2299 pub test_perf: gboolean,
2300 pub test_verbose: gboolean,
2301 pub test_quiet: gboolean,
2302 pub test_undefined: gboolean,
2303}
2304
2305impl ::std::fmt::Debug for GTestConfig {
2306 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2307 f.debug_struct(&format!("GTestConfig @ {self:p}"))
2308 .field("test_initialized", &self.test_initialized)
2309 .field("test_quick", &self.test_quick)
2310 .field("test_perf", &self.test_perf)
2311 .field("test_verbose", &self.test_verbose)
2312 .field("test_quiet", &self.test_quiet)
2313 .field("test_undefined", &self.test_undefined)
2314 .finish()
2315 }
2316}
2317
2318#[derive(Copy, Clone)]
2319#[repr(C)]
2320pub struct GTestLogBuffer {
2321 pub data: *mut GString,
2322 pub msgs: *mut GSList,
2323}
2324
2325impl ::std::fmt::Debug for GTestLogBuffer {
2326 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2327 f.debug_struct(&format!("GTestLogBuffer @ {self:p}"))
2328 .finish()
2329 }
2330}
2331
2332#[repr(C)]
2333#[allow(dead_code)]
2334pub struct _GTestSuite {
2335 _data: [u8; 0],
2336 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2337}
2338
2339pub type GTestSuite = _GTestSuite;
2340
2341#[derive(Copy, Clone)]
2342#[repr(C)]
2343pub struct GThread {
2344 pub func: GThreadFunc,
2345 pub data: gpointer,
2346 pub joinable: gboolean,
2347 pub priority: GThreadPriority,
2348}
2349
2350impl ::std::fmt::Debug for GThread {
2351 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2352 f.debug_struct(&format!("GThread @ {self:p}")).finish()
2353 }
2354}
2355
2356#[derive(Copy, Clone)]
2357#[repr(C)]
2358pub struct GThreadFunctions {
2359 pub mutex_new: Option<unsafe extern "C" fn() -> *mut GMutex>,
2360 pub mutex_lock: Option<unsafe extern "C" fn(*mut GMutex)>,
2361 pub mutex_trylock: Option<unsafe extern "C" fn(*mut GMutex) -> gboolean>,
2362 pub mutex_unlock: Option<unsafe extern "C" fn(*mut GMutex)>,
2363 pub mutex_free: Option<unsafe extern "C" fn(*mut GMutex)>,
2364 pub cond_new: Option<unsafe extern "C" fn() -> *mut GCond>,
2365 pub cond_signal: Option<unsafe extern "C" fn(*mut GCond)>,
2366 pub cond_broadcast: Option<unsafe extern "C" fn(*mut GCond)>,
2367 pub cond_wait: Option<unsafe extern "C" fn(*mut GCond, *mut GMutex)>,
2368 pub cond_timed_wait:
2369 Option<unsafe extern "C" fn(*mut GCond, *mut GMutex, *mut GTimeVal) -> gboolean>,
2370 pub cond_free: Option<unsafe extern "C" fn(*mut GCond)>,
2371 pub private_new: Option<unsafe extern "C" fn(GDestroyNotify) -> *mut GPrivate>,
2372 pub private_get: Option<unsafe extern "C" fn(*mut GPrivate) -> gpointer>,
2373 pub private_set: Option<unsafe extern "C" fn(*mut GPrivate, gpointer)>,
2374 pub thread_create: Option<
2375 unsafe extern "C" fn(
2376 GThreadFunc,
2377 gpointer,
2378 c_ulong,
2379 gboolean,
2380 gboolean,
2381 GThreadPriority,
2382 gpointer,
2383 *mut *mut GError,
2384 ),
2385 >,
2386 pub thread_yield: Option<unsafe extern "C" fn()>,
2387 pub thread_join: Option<unsafe extern "C" fn(gpointer)>,
2388 pub thread_exit: Option<unsafe extern "C" fn()>,
2389 pub thread_set_priority: Option<unsafe extern "C" fn(gpointer, GThreadPriority)>,
2390 pub thread_self: Option<unsafe extern "C" fn(gpointer)>,
2391 pub thread_equal: Option<unsafe extern "C" fn(gpointer, gpointer) -> gboolean>,
2392}
2393
2394impl ::std::fmt::Debug for GThreadFunctions {
2395 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2396 f.debug_struct(&format!("GThreadFunctions @ {self:p}"))
2397 .field("mutex_new", &self.mutex_new)
2398 .field("mutex_lock", &self.mutex_lock)
2399 .field("mutex_trylock", &self.mutex_trylock)
2400 .field("mutex_unlock", &self.mutex_unlock)
2401 .field("mutex_free", &self.mutex_free)
2402 .field("cond_new", &self.cond_new)
2403 .field("cond_signal", &self.cond_signal)
2404 .field("cond_broadcast", &self.cond_broadcast)
2405 .field("cond_wait", &self.cond_wait)
2406 .field("cond_timed_wait", &self.cond_timed_wait)
2407 .field("cond_free", &self.cond_free)
2408 .field("private_new", &self.private_new)
2409 .field("private_get", &self.private_get)
2410 .field("private_set", &self.private_set)
2411 .field("thread_create", &self.thread_create)
2412 .field("thread_yield", &self.thread_yield)
2413 .field("thread_join", &self.thread_join)
2414 .field("thread_exit", &self.thread_exit)
2415 .field("thread_set_priority", &self.thread_set_priority)
2416 .field("thread_self", &self.thread_self)
2417 .field("thread_equal", &self.thread_equal)
2418 .finish()
2419 }
2420}
2421
2422#[derive(Copy, Clone)]
2423#[repr(C)]
2424pub struct GThreadPool {
2425 pub func: GFunc,
2426 pub user_data: gpointer,
2427 pub exclusive: gboolean,
2428}
2429
2430impl ::std::fmt::Debug for GThreadPool {
2431 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2432 f.debug_struct(&format!("GThreadPool @ {self:p}"))
2433 .field("func", &self.func)
2434 .field("user_data", &self.user_data)
2435 .field("exclusive", &self.exclusive)
2436 .finish()
2437 }
2438}
2439
2440#[derive(Copy, Clone)]
2441#[repr(C)]
2442pub struct GTimeVal {
2443 pub tv_sec: c_long,
2444 pub tv_usec: c_long,
2445}
2446
2447impl ::std::fmt::Debug for GTimeVal {
2448 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2449 f.debug_struct(&format!("GTimeVal @ {self:p}"))
2450 .field("tv_sec", &self.tv_sec)
2451 .field("tv_usec", &self.tv_usec)
2452 .finish()
2453 }
2454}
2455
2456#[repr(C)]
2457#[allow(dead_code)]
2458pub struct GTimeZone {
2459 _data: [u8; 0],
2460 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2461}
2462
2463impl ::std::fmt::Debug for GTimeZone {
2464 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2465 f.debug_struct(&format!("GTimeZone @ {self:p}")).finish()
2466 }
2467}
2468
2469#[repr(C)]
2470#[allow(dead_code)]
2471pub struct _GTimer {
2472 _data: [u8; 0],
2473 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2474}
2475
2476pub type GTimer = _GTimer;
2477
2478#[derive(Copy, Clone)]
2479#[repr(C)]
2480pub struct GTrashStack {
2481 pub next: *mut GTrashStack,
2482}
2483
2484impl ::std::fmt::Debug for GTrashStack {
2485 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2486 f.debug_struct(&format!("GTrashStack @ {self:p}"))
2487 .field("next", &self.next)
2488 .finish()
2489 }
2490}
2491
2492#[repr(C)]
2493#[allow(dead_code)]
2494pub struct GTree {
2495 _data: [u8; 0],
2496 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2497}
2498
2499impl ::std::fmt::Debug for GTree {
2500 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2501 f.debug_struct(&format!("GTree @ {self:p}")).finish()
2502 }
2503}
2504
2505#[repr(C)]
2506#[allow(dead_code)]
2507pub struct _GTreeNode {
2508 _data: [u8; 0],
2509 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2510}
2511
2512pub type GTreeNode = _GTreeNode;
2513
2514#[derive(Copy, Clone)]
2515#[repr(C)]
2516pub struct GTuples {
2517 pub len: c_uint,
2518}
2519
2520impl ::std::fmt::Debug for GTuples {
2521 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2522 f.debug_struct(&format!("GTuples @ {self:p}"))
2523 .field("len", &self.len)
2524 .finish()
2525 }
2526}
2527
2528#[repr(C)]
2529#[allow(dead_code)]
2530pub struct GUri {
2531 _data: [u8; 0],
2532 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2533}
2534
2535impl ::std::fmt::Debug for GUri {
2536 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2537 f.debug_struct(&format!("GUri @ {self:p}")).finish()
2538 }
2539}
2540
2541#[derive(Copy, Clone)]
2542#[repr(C)]
2543pub struct GUriParamsIter {
2544 pub dummy0: c_int,
2545 pub dummy1: gpointer,
2546 pub dummy2: gpointer,
2547 pub dummy3: [u8; 256],
2548}
2549
2550impl ::std::fmt::Debug for GUriParamsIter {
2551 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2552 f.debug_struct(&format!("GUriParamsIter @ {self:p}"))
2553 .finish()
2554 }
2555}
2556
2557#[repr(C)]
2558#[allow(dead_code)]
2559pub struct GVariant {
2560 _data: [u8; 0],
2561 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2562}
2563
2564impl ::std::fmt::Debug for GVariant {
2565 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2566 f.debug_struct(&format!("GVariant @ {self:p}")).finish()
2567 }
2568}
2569
2570#[derive(Copy, Clone)]
2571#[repr(C)]
2572pub struct GVariantBuilder {
2573 pub u: GVariantBuilder_u,
2574}
2575
2576impl ::std::fmt::Debug for GVariantBuilder {
2577 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2578 f.debug_struct(&format!("GVariantBuilder @ {self:p}"))
2579 .field("u", &self.u)
2580 .finish()
2581 }
2582}
2583
2584#[derive(Copy, Clone)]
2585#[repr(C)]
2586pub struct GVariantBuilder_u_s {
2587 pub partial_magic: size_t,
2588 pub type_: *const GVariantType,
2589 pub y: [uintptr_t; 14],
2590}
2591
2592impl ::std::fmt::Debug for GVariantBuilder_u_s {
2593 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2594 f.debug_struct(&format!("GVariantBuilder_u_s @ {self:p}"))
2595 .field("partial_magic", &self.partial_magic)
2596 .field("type_", &self.type_)
2597 .field("y", &self.y)
2598 .finish()
2599 }
2600}
2601
2602#[derive(Copy, Clone)]
2603#[repr(C)]
2604pub struct GVariantDict {
2605 pub u: GVariantDict_u,
2606}
2607
2608impl ::std::fmt::Debug for GVariantDict {
2609 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2610 f.debug_struct(&format!("GVariantDict @ {self:p}"))
2611 .field("u", &self.u)
2612 .finish()
2613 }
2614}
2615
2616#[derive(Copy, Clone)]
2617#[repr(C)]
2618pub struct GVariantDict_u_s {
2619 pub asv: *mut GVariant,
2620 pub partial_magic: size_t,
2621 pub y: [uintptr_t; 14],
2622}
2623
2624impl ::std::fmt::Debug for GVariantDict_u_s {
2625 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2626 f.debug_struct(&format!("GVariantDict_u_s @ {self:p}"))
2627 .field("asv", &self.asv)
2628 .field("partial_magic", &self.partial_magic)
2629 .field("y", &self.y)
2630 .finish()
2631 }
2632}
2633
2634#[derive(Copy, Clone)]
2635#[repr(C)]
2636pub struct GVariantIter {
2637 pub x: [uintptr_t; 16],
2638}
2639
2640impl ::std::fmt::Debug for GVariantIter {
2641 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2642 f.debug_struct(&format!("GVariantIter @ {self:p}")).finish()
2643 }
2644}
2645
2646#[repr(C)]
2647#[allow(dead_code)]
2648pub struct GVariantType {
2649 _data: [u8; 0],
2650 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
2651}
2652
2653impl ::std::fmt::Debug for GVariantType {
2654 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2655 f.debug_struct(&format!("GVariantType @ {self:p}")).finish()
2656 }
2657}
2658
2659extern "C" {
2660
2661 pub fn g_normalize_mode_get_type() -> GType;
2665
2666 pub fn g_unicode_break_type_get_type() -> GType;
2670
2671 pub fn g_unicode_script_get_type() -> GType;
2675 pub fn g_unicode_script_from_iso15924(iso15924: u32) -> GUnicodeScript;
2676 pub fn g_unicode_script_to_iso15924(script: GUnicodeScript) -> u32;
2677
2678 pub fn g_unicode_type_get_type() -> GType;
2682
2683 pub fn g_io_condition_get_type() -> GType;
2687
2688 pub fn g_mutex_clear(mutex: *mut GMutex);
2692 pub fn g_mutex_free(mutex: *mut GMutex);
2693 pub fn g_mutex_init(mutex: *mut GMutex);
2694 pub fn g_mutex_lock(mutex: *mut GMutex);
2695 pub fn g_mutex_trylock(mutex: *mut GMutex) -> gboolean;
2696 pub fn g_mutex_unlock(mutex: *mut GMutex);
2697 pub fn g_mutex_new() -> *mut GMutex;
2698
2699 pub fn g_allocator_free(allocator: *mut GAllocator);
2703 pub fn g_allocator_new(name: *const c_char, n_preallocs: c_uint) -> *mut GAllocator;
2704
2705 pub fn g_array_get_type() -> GType;
2709 pub fn g_array_append_vals(array: *mut GArray, data: gconstpointer, len: c_uint)
2710 -> *mut GArray;
2711 #[cfg(feature = "v2_62")]
2712 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
2713 pub fn g_array_binary_search(
2714 array: *mut GArray,
2715 target: gconstpointer,
2716 compare_func: GCompareFunc,
2717 out_match_index: *mut c_uint,
2718 ) -> gboolean;
2719 #[cfg(feature = "v2_62")]
2720 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
2721 pub fn g_array_copy(array: *mut GArray) -> *mut GArray;
2722 pub fn g_array_free(array: *mut GArray, free_segment: gboolean) -> *mut c_char;
2723 pub fn g_array_get_element_size(array: *mut GArray) -> c_uint;
2724 pub fn g_array_insert_vals(
2725 array: *mut GArray,
2726 index_: c_uint,
2727 data: gconstpointer,
2728 len: c_uint,
2729 ) -> *mut GArray;
2730 pub fn g_array_new(
2731 zero_terminated: gboolean,
2732 clear_: gboolean,
2733 element_size: c_uint,
2734 ) -> *mut GArray;
2735 #[cfg(feature = "v2_76")]
2736 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
2737 pub fn g_array_new_take(
2738 data: gpointer,
2739 len: size_t,
2740 clear: gboolean,
2741 element_size: size_t,
2742 ) -> *mut GArray;
2743 #[cfg(feature = "v2_76")]
2744 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
2745 pub fn g_array_new_take_zero_terminated(
2746 data: gpointer,
2747 clear: gboolean,
2748 element_size: size_t,
2749 ) -> *mut GArray;
2750 pub fn g_array_prepend_vals(
2751 array: *mut GArray,
2752 data: gconstpointer,
2753 len: c_uint,
2754 ) -> *mut GArray;
2755 pub fn g_array_ref(array: *mut GArray) -> *mut GArray;
2756 pub fn g_array_remove_index(array: *mut GArray, index_: c_uint) -> *mut GArray;
2757 pub fn g_array_remove_index_fast(array: *mut GArray, index_: c_uint) -> *mut GArray;
2758 pub fn g_array_remove_range(array: *mut GArray, index_: c_uint, length: c_uint) -> *mut GArray;
2759 pub fn g_array_set_clear_func(array: *mut GArray, clear_func: GDestroyNotify);
2760 pub fn g_array_set_size(array: *mut GArray, length: c_uint) -> *mut GArray;
2761 pub fn g_array_sized_new(
2762 zero_terminated: gboolean,
2763 clear_: gboolean,
2764 element_size: c_uint,
2765 reserved_size: c_uint,
2766 ) -> *mut GArray;
2767 pub fn g_array_sort(array: *mut GArray, compare_func: GCompareFunc);
2768 pub fn g_array_sort_with_data(
2769 array: *mut GArray,
2770 compare_func: GCompareDataFunc,
2771 user_data: gpointer,
2772 );
2773 #[cfg(feature = "v2_64")]
2774 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
2775 pub fn g_array_steal(array: *mut GArray, len: *mut size_t) -> gpointer;
2776 pub fn g_array_unref(array: *mut GArray);
2777
2778 pub fn g_async_queue_length(queue: *mut GAsyncQueue) -> c_int;
2782 pub fn g_async_queue_length_unlocked(queue: *mut GAsyncQueue) -> c_int;
2783 pub fn g_async_queue_lock(queue: *mut GAsyncQueue);
2784 pub fn g_async_queue_pop(queue: *mut GAsyncQueue) -> gpointer;
2785 pub fn g_async_queue_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer;
2786 pub fn g_async_queue_push(queue: *mut GAsyncQueue, data: gpointer);
2787 pub fn g_async_queue_push_front(queue: *mut GAsyncQueue, item: gpointer);
2788 pub fn g_async_queue_push_front_unlocked(queue: *mut GAsyncQueue, item: gpointer);
2789 pub fn g_async_queue_push_sorted(
2790 queue: *mut GAsyncQueue,
2791 data: gpointer,
2792 func: GCompareDataFunc,
2793 user_data: gpointer,
2794 );
2795 pub fn g_async_queue_push_sorted_unlocked(
2796 queue: *mut GAsyncQueue,
2797 data: gpointer,
2798 func: GCompareDataFunc,
2799 user_data: gpointer,
2800 );
2801 pub fn g_async_queue_push_unlocked(queue: *mut GAsyncQueue, data: gpointer);
2802 pub fn g_async_queue_ref(queue: *mut GAsyncQueue) -> *mut GAsyncQueue;
2803 pub fn g_async_queue_ref_unlocked(queue: *mut GAsyncQueue);
2804 pub fn g_async_queue_remove(queue: *mut GAsyncQueue, item: gpointer) -> gboolean;
2805 pub fn g_async_queue_remove_unlocked(queue: *mut GAsyncQueue, item: gpointer) -> gboolean;
2806 pub fn g_async_queue_sort(queue: *mut GAsyncQueue, func: GCompareDataFunc, user_data: gpointer);
2807 pub fn g_async_queue_sort_unlocked(
2808 queue: *mut GAsyncQueue,
2809 func: GCompareDataFunc,
2810 user_data: gpointer,
2811 );
2812 pub fn g_async_queue_timed_pop(queue: *mut GAsyncQueue, end_time: *mut GTimeVal) -> gpointer;
2813 pub fn g_async_queue_timed_pop_unlocked(
2814 queue: *mut GAsyncQueue,
2815 end_time: *mut GTimeVal,
2816 ) -> gpointer;
2817 pub fn g_async_queue_timeout_pop(queue: *mut GAsyncQueue, timeout: u64) -> gpointer;
2818 pub fn g_async_queue_timeout_pop_unlocked(queue: *mut GAsyncQueue, timeout: u64) -> gpointer;
2819 pub fn g_async_queue_try_pop(queue: *mut GAsyncQueue) -> gpointer;
2820 pub fn g_async_queue_try_pop_unlocked(queue: *mut GAsyncQueue) -> gpointer;
2821 pub fn g_async_queue_unlock(queue: *mut GAsyncQueue);
2822 pub fn g_async_queue_unref(queue: *mut GAsyncQueue);
2823 pub fn g_async_queue_unref_and_unlock(queue: *mut GAsyncQueue);
2824 pub fn g_async_queue_new() -> *mut GAsyncQueue;
2825 pub fn g_async_queue_new_full(item_free_func: GDestroyNotify) -> *mut GAsyncQueue;
2826
2827 pub fn g_bookmark_file_get_type() -> GType;
2831 pub fn g_bookmark_file_new() -> *mut GBookmarkFile;
2832 pub fn g_bookmark_file_add_application(
2833 bookmark: *mut GBookmarkFile,
2834 uri: *const c_char,
2835 name: *const c_char,
2836 exec: *const c_char,
2837 );
2838 pub fn g_bookmark_file_add_group(
2839 bookmark: *mut GBookmarkFile,
2840 uri: *const c_char,
2841 group: *const c_char,
2842 );
2843 #[cfg(feature = "v2_76")]
2844 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
2845 pub fn g_bookmark_file_copy(bookmark: *mut GBookmarkFile) -> *mut GBookmarkFile;
2846 pub fn g_bookmark_file_free(bookmark: *mut GBookmarkFile);
2847 pub fn g_bookmark_file_get_added(
2848 bookmark: *mut GBookmarkFile,
2849 uri: *const c_char,
2850 error: *mut *mut GError,
2851 ) -> time_t;
2852 #[cfg(feature = "v2_66")]
2853 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2854 pub fn g_bookmark_file_get_added_date_time(
2855 bookmark: *mut GBookmarkFile,
2856 uri: *const c_char,
2857 error: *mut *mut GError,
2858 ) -> *mut GDateTime;
2859 pub fn g_bookmark_file_get_app_info(
2860 bookmark: *mut GBookmarkFile,
2861 uri: *const c_char,
2862 name: *const c_char,
2863 exec: *mut *mut c_char,
2864 count: *mut c_uint,
2865 stamp: *mut time_t,
2866 error: *mut *mut GError,
2867 ) -> gboolean;
2868 #[cfg(feature = "v2_66")]
2869 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2870 pub fn g_bookmark_file_get_application_info(
2871 bookmark: *mut GBookmarkFile,
2872 uri: *const c_char,
2873 name: *const c_char,
2874 exec: *mut *mut c_char,
2875 count: *mut c_uint,
2876 stamp: *mut *mut GDateTime,
2877 error: *mut *mut GError,
2878 ) -> gboolean;
2879 pub fn g_bookmark_file_get_applications(
2880 bookmark: *mut GBookmarkFile,
2881 uri: *const c_char,
2882 length: *mut size_t,
2883 error: *mut *mut GError,
2884 ) -> *mut *mut c_char;
2885 pub fn g_bookmark_file_get_description(
2886 bookmark: *mut GBookmarkFile,
2887 uri: *const c_char,
2888 error: *mut *mut GError,
2889 ) -> *mut c_char;
2890 pub fn g_bookmark_file_get_groups(
2891 bookmark: *mut GBookmarkFile,
2892 uri: *const c_char,
2893 length: *mut size_t,
2894 error: *mut *mut GError,
2895 ) -> *mut *mut c_char;
2896 pub fn g_bookmark_file_get_icon(
2897 bookmark: *mut GBookmarkFile,
2898 uri: *const c_char,
2899 href: *mut *mut c_char,
2900 mime_type: *mut *mut c_char,
2901 error: *mut *mut GError,
2902 ) -> gboolean;
2903 pub fn g_bookmark_file_get_is_private(
2904 bookmark: *mut GBookmarkFile,
2905 uri: *const c_char,
2906 error: *mut *mut GError,
2907 ) -> gboolean;
2908 pub fn g_bookmark_file_get_mime_type(
2909 bookmark: *mut GBookmarkFile,
2910 uri: *const c_char,
2911 error: *mut *mut GError,
2912 ) -> *mut c_char;
2913 pub fn g_bookmark_file_get_modified(
2914 bookmark: *mut GBookmarkFile,
2915 uri: *const c_char,
2916 error: *mut *mut GError,
2917 ) -> time_t;
2918 #[cfg(feature = "v2_66")]
2919 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2920 pub fn g_bookmark_file_get_modified_date_time(
2921 bookmark: *mut GBookmarkFile,
2922 uri: *const c_char,
2923 error: *mut *mut GError,
2924 ) -> *mut GDateTime;
2925 pub fn g_bookmark_file_get_size(bookmark: *mut GBookmarkFile) -> c_int;
2926 pub fn g_bookmark_file_get_title(
2927 bookmark: *mut GBookmarkFile,
2928 uri: *const c_char,
2929 error: *mut *mut GError,
2930 ) -> *mut c_char;
2931 pub fn g_bookmark_file_get_uris(
2932 bookmark: *mut GBookmarkFile,
2933 length: *mut size_t,
2934 ) -> *mut *mut c_char;
2935 pub fn g_bookmark_file_get_visited(
2936 bookmark: *mut GBookmarkFile,
2937 uri: *const c_char,
2938 error: *mut *mut GError,
2939 ) -> time_t;
2940 #[cfg(feature = "v2_66")]
2941 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2942 pub fn g_bookmark_file_get_visited_date_time(
2943 bookmark: *mut GBookmarkFile,
2944 uri: *const c_char,
2945 error: *mut *mut GError,
2946 ) -> *mut GDateTime;
2947 pub fn g_bookmark_file_has_application(
2948 bookmark: *mut GBookmarkFile,
2949 uri: *const c_char,
2950 name: *const c_char,
2951 error: *mut *mut GError,
2952 ) -> gboolean;
2953 pub fn g_bookmark_file_has_group(
2954 bookmark: *mut GBookmarkFile,
2955 uri: *const c_char,
2956 group: *const c_char,
2957 error: *mut *mut GError,
2958 ) -> gboolean;
2959 pub fn g_bookmark_file_has_item(bookmark: *mut GBookmarkFile, uri: *const c_char) -> gboolean;
2960 pub fn g_bookmark_file_load_from_data(
2961 bookmark: *mut GBookmarkFile,
2962 data: *const u8,
2963 length: size_t,
2964 error: *mut *mut GError,
2965 ) -> gboolean;
2966 pub fn g_bookmark_file_load_from_data_dirs(
2967 bookmark: *mut GBookmarkFile,
2968 file: *const c_char,
2969 full_path: *mut *mut c_char,
2970 error: *mut *mut GError,
2971 ) -> gboolean;
2972 pub fn g_bookmark_file_load_from_file(
2973 bookmark: *mut GBookmarkFile,
2974 filename: *const c_char,
2975 error: *mut *mut GError,
2976 ) -> gboolean;
2977 pub fn g_bookmark_file_move_item(
2978 bookmark: *mut GBookmarkFile,
2979 old_uri: *const c_char,
2980 new_uri: *const c_char,
2981 error: *mut *mut GError,
2982 ) -> gboolean;
2983 pub fn g_bookmark_file_remove_application(
2984 bookmark: *mut GBookmarkFile,
2985 uri: *const c_char,
2986 name: *const c_char,
2987 error: *mut *mut GError,
2988 ) -> gboolean;
2989 pub fn g_bookmark_file_remove_group(
2990 bookmark: *mut GBookmarkFile,
2991 uri: *const c_char,
2992 group: *const c_char,
2993 error: *mut *mut GError,
2994 ) -> gboolean;
2995 pub fn g_bookmark_file_remove_item(
2996 bookmark: *mut GBookmarkFile,
2997 uri: *const c_char,
2998 error: *mut *mut GError,
2999 ) -> gboolean;
3000 pub fn g_bookmark_file_set_added(
3001 bookmark: *mut GBookmarkFile,
3002 uri: *const c_char,
3003 added: time_t,
3004 );
3005 #[cfg(feature = "v2_66")]
3006 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
3007 pub fn g_bookmark_file_set_added_date_time(
3008 bookmark: *mut GBookmarkFile,
3009 uri: *const c_char,
3010 added: *mut GDateTime,
3011 );
3012 pub fn g_bookmark_file_set_app_info(
3013 bookmark: *mut GBookmarkFile,
3014 uri: *const c_char,
3015 name: *const c_char,
3016 exec: *const c_char,
3017 count: c_int,
3018 stamp: time_t,
3019 error: *mut *mut GError,
3020 ) -> gboolean;
3021 #[cfg(feature = "v2_66")]
3022 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
3023 pub fn g_bookmark_file_set_application_info(
3024 bookmark: *mut GBookmarkFile,
3025 uri: *const c_char,
3026 name: *const c_char,
3027 exec: *const c_char,
3028 count: c_int,
3029 stamp: *mut GDateTime,
3030 error: *mut *mut GError,
3031 ) -> gboolean;
3032 pub fn g_bookmark_file_set_description(
3033 bookmark: *mut GBookmarkFile,
3034 uri: *const c_char,
3035 description: *const c_char,
3036 );
3037 pub fn g_bookmark_file_set_groups(
3038 bookmark: *mut GBookmarkFile,
3039 uri: *const c_char,
3040 groups: *mut *const c_char,
3041 length: size_t,
3042 );
3043 pub fn g_bookmark_file_set_icon(
3044 bookmark: *mut GBookmarkFile,
3045 uri: *const c_char,
3046 href: *const c_char,
3047 mime_type: *const c_char,
3048 );
3049 pub fn g_bookmark_file_set_is_private(
3050 bookmark: *mut GBookmarkFile,
3051 uri: *const c_char,
3052 is_private: gboolean,
3053 );
3054 pub fn g_bookmark_file_set_mime_type(
3055 bookmark: *mut GBookmarkFile,
3056 uri: *const c_char,
3057 mime_type: *const c_char,
3058 );
3059 pub fn g_bookmark_file_set_modified(
3060 bookmark: *mut GBookmarkFile,
3061 uri: *const c_char,
3062 modified: time_t,
3063 );
3064 #[cfg(feature = "v2_66")]
3065 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
3066 pub fn g_bookmark_file_set_modified_date_time(
3067 bookmark: *mut GBookmarkFile,
3068 uri: *const c_char,
3069 modified: *mut GDateTime,
3070 );
3071 pub fn g_bookmark_file_set_title(
3072 bookmark: *mut GBookmarkFile,
3073 uri: *const c_char,
3074 title: *const c_char,
3075 );
3076 pub fn g_bookmark_file_set_visited(
3077 bookmark: *mut GBookmarkFile,
3078 uri: *const c_char,
3079 visited: time_t,
3080 );
3081 #[cfg(feature = "v2_66")]
3082 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
3083 pub fn g_bookmark_file_set_visited_date_time(
3084 bookmark: *mut GBookmarkFile,
3085 uri: *const c_char,
3086 visited: *mut GDateTime,
3087 );
3088 pub fn g_bookmark_file_to_data(
3089 bookmark: *mut GBookmarkFile,
3090 length: *mut size_t,
3091 error: *mut *mut GError,
3092 ) -> *mut u8;
3093 pub fn g_bookmark_file_to_file(
3094 bookmark: *mut GBookmarkFile,
3095 filename: *const c_char,
3096 error: *mut *mut GError,
3097 ) -> gboolean;
3098 pub fn g_bookmark_file_error_quark() -> GQuark;
3099
3100 pub fn g_byte_array_get_type() -> GType;
3104 pub fn g_byte_array_append(
3105 array: *mut GByteArray,
3106 data: *const u8,
3107 len: c_uint,
3108 ) -> *mut GByteArray;
3109 pub fn g_byte_array_free(array: *mut GByteArray, free_segment: gboolean) -> *mut u8;
3110 pub fn g_byte_array_free_to_bytes(array: *mut GByteArray) -> *mut GBytes;
3111 pub fn g_byte_array_new() -> *mut GByteArray;
3112 pub fn g_byte_array_new_take(data: *mut u8, len: size_t) -> *mut GByteArray;
3113 pub fn g_byte_array_prepend(
3114 array: *mut GByteArray,
3115 data: *const u8,
3116 len: c_uint,
3117 ) -> *mut GByteArray;
3118 pub fn g_byte_array_ref(array: *mut GByteArray) -> *mut GByteArray;
3119 pub fn g_byte_array_remove_index(array: *mut GByteArray, index_: c_uint) -> *mut GByteArray;
3120 pub fn g_byte_array_remove_index_fast(
3121 array: *mut GByteArray,
3122 index_: c_uint,
3123 ) -> *mut GByteArray;
3124 pub fn g_byte_array_remove_range(
3125 array: *mut GByteArray,
3126 index_: c_uint,
3127 length: c_uint,
3128 ) -> *mut GByteArray;
3129 pub fn g_byte_array_set_size(array: *mut GByteArray, length: c_uint) -> *mut GByteArray;
3130 pub fn g_byte_array_sized_new(reserved_size: c_uint) -> *mut GByteArray;
3131 pub fn g_byte_array_sort(array: *mut GByteArray, compare_func: GCompareFunc);
3132 pub fn g_byte_array_sort_with_data(
3133 array: *mut GByteArray,
3134 compare_func: GCompareDataFunc,
3135 user_data: gpointer,
3136 );
3137 #[cfg(feature = "v2_64")]
3138 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
3139 pub fn g_byte_array_steal(array: *mut GByteArray, len: *mut size_t) -> *mut u8;
3140 pub fn g_byte_array_unref(array: *mut GByteArray);
3141
3142 pub fn g_bytes_get_type() -> GType;
3146 pub fn g_bytes_new(data: gconstpointer, size: size_t) -> *mut GBytes;
3147 pub fn g_bytes_new_from_bytes(
3148 bytes: *mut GBytes,
3149 offset: size_t,
3150 length: size_t,
3151 ) -> *mut GBytes;
3152 pub fn g_bytes_new_static(data: gconstpointer, size: size_t) -> *mut GBytes;
3153 pub fn g_bytes_new_take(data: gpointer, size: size_t) -> *mut GBytes;
3154 pub fn g_bytes_new_with_free_func(
3155 data: gconstpointer,
3156 size: size_t,
3157 free_func: GDestroyNotify,
3158 user_data: gpointer,
3159 ) -> *mut GBytes;
3160 pub fn g_bytes_compare(bytes1: gconstpointer, bytes2: gconstpointer) -> c_int;
3161 pub fn g_bytes_equal(bytes1: gconstpointer, bytes2: gconstpointer) -> gboolean;
3162 pub fn g_bytes_get_data(bytes: *mut GBytes, size: *mut size_t) -> gconstpointer;
3163 #[cfg(feature = "v2_70")]
3164 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
3165 pub fn g_bytes_get_region(
3166 bytes: *mut GBytes,
3167 element_size: size_t,
3168 offset: size_t,
3169 n_elements: size_t,
3170 ) -> gconstpointer;
3171 pub fn g_bytes_get_size(bytes: *mut GBytes) -> size_t;
3172 pub fn g_bytes_hash(bytes: gconstpointer) -> c_uint;
3173 pub fn g_bytes_ref(bytes: *mut GBytes) -> *mut GBytes;
3174 pub fn g_bytes_unref(bytes: *mut GBytes);
3175 pub fn g_bytes_unref_to_array(bytes: *mut GBytes) -> *mut GByteArray;
3176 pub fn g_bytes_unref_to_data(bytes: *mut GBytes, size: *mut size_t) -> gpointer;
3177
3178 pub fn g_cache_destroy(cache: *mut GCache);
3182 pub fn g_cache_insert(cache: *mut GCache, key: gpointer) -> gpointer;
3183 pub fn g_cache_key_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer);
3184 pub fn g_cache_remove(cache: *mut GCache, value: gconstpointer);
3185 pub fn g_cache_value_foreach(cache: *mut GCache, func: GHFunc, user_data: gpointer);
3186 pub fn g_cache_new(
3187 value_new_func: GCacheNewFunc,
3188 value_destroy_func: GCacheDestroyFunc,
3189 key_dup_func: GCacheDupFunc,
3190 key_destroy_func: GCacheDestroyFunc,
3191 hash_key_func: GHashFunc,
3192 hash_value_func: GHashFunc,
3193 key_equal_func: GEqualFunc,
3194 ) -> *mut GCache;
3195
3196 pub fn g_checksum_get_type() -> GType;
3200 pub fn g_checksum_new(checksum_type: GChecksumType) -> *mut GChecksum;
3201 pub fn g_checksum_copy(checksum: *const GChecksum) -> *mut GChecksum;
3202 pub fn g_checksum_free(checksum: *mut GChecksum);
3203 pub fn g_checksum_get_digest(
3204 checksum: *mut GChecksum,
3205 buffer: *mut u8,
3206 digest_len: *mut size_t,
3207 );
3208 pub fn g_checksum_get_string(checksum: *mut GChecksum) -> *const c_char;
3209 pub fn g_checksum_reset(checksum: *mut GChecksum);
3210 pub fn g_checksum_update(checksum: *mut GChecksum, data: *const u8, length: ssize_t);
3211 pub fn g_checksum_type_get_length(checksum_type: GChecksumType) -> ssize_t;
3212
3213 pub fn g_completion_add_items(cmp: *mut GCompletion, items: *mut GList);
3217 pub fn g_completion_clear_items(cmp: *mut GCompletion);
3218 pub fn g_completion_complete(
3219 cmp: *mut GCompletion,
3220 prefix: *const c_char,
3221 new_prefix: *mut *mut c_char,
3222 ) -> *mut GList;
3223 pub fn g_completion_complete_utf8(
3224 cmp: *mut GCompletion,
3225 prefix: *const c_char,
3226 new_prefix: *mut *mut c_char,
3227 ) -> *mut GList;
3228 pub fn g_completion_free(cmp: *mut GCompletion);
3229 pub fn g_completion_remove_items(cmp: *mut GCompletion, items: *mut GList);
3230 pub fn g_completion_set_compare(cmp: *mut GCompletion, strncmp_func: GCompletionStrncmpFunc);
3231 pub fn g_completion_new(func: GCompletionFunc) -> *mut GCompletion;
3232
3233 pub fn g_cond_broadcast(cond: *mut GCond);
3237 pub fn g_cond_clear(cond: *mut GCond);
3238 pub fn g_cond_free(cond: *mut GCond);
3239 pub fn g_cond_init(cond: *mut GCond);
3240 pub fn g_cond_signal(cond: *mut GCond);
3241 pub fn g_cond_timed_wait(
3242 cond: *mut GCond,
3243 mutex: *mut GMutex,
3244 abs_time: *mut GTimeVal,
3245 ) -> gboolean;
3246 pub fn g_cond_wait(cond: *mut GCond, mutex: *mut GMutex);
3247 pub fn g_cond_wait_until(cond: *mut GCond, mutex: *mut GMutex, end_time: i64) -> gboolean;
3248 pub fn g_cond_new() -> *mut GCond;
3249
3250 pub fn g_date_get_type() -> GType;
3254 pub fn g_date_new() -> *mut GDate;
3255 pub fn g_date_new_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> *mut GDate;
3256 pub fn g_date_new_julian(julian_day: u32) -> *mut GDate;
3257 pub fn g_date_add_days(date: *mut GDate, n_days: c_uint);
3258 pub fn g_date_add_months(date: *mut GDate, n_months: c_uint);
3259 pub fn g_date_add_years(date: *mut GDate, n_years: c_uint);
3260 pub fn g_date_clamp(date: *mut GDate, min_date: *const GDate, max_date: *const GDate);
3261 pub fn g_date_clear(date: *mut GDate, n_dates: c_uint);
3262 pub fn g_date_compare(lhs: *const GDate, rhs: *const GDate) -> c_int;
3263 pub fn g_date_copy(date: *const GDate) -> *mut GDate;
3264 pub fn g_date_days_between(date1: *const GDate, date2: *const GDate) -> c_int;
3265 pub fn g_date_free(date: *mut GDate);
3266 pub fn g_date_get_day(date: *const GDate) -> GDateDay;
3267 pub fn g_date_get_day_of_year(date: *const GDate) -> c_uint;
3268 pub fn g_date_get_iso8601_week_of_year(date: *const GDate) -> c_uint;
3269 pub fn g_date_get_julian(date: *const GDate) -> u32;
3270 pub fn g_date_get_monday_week_of_year(date: *const GDate) -> c_uint;
3271 pub fn g_date_get_month(date: *const GDate) -> GDateMonth;
3272 pub fn g_date_get_sunday_week_of_year(date: *const GDate) -> c_uint;
3273 #[cfg(feature = "v2_86")]
3274 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
3275 pub fn g_date_get_week_of_year(date: *const GDate, first_day_of_week: GDateWeekday) -> c_uint;
3276 pub fn g_date_get_weekday(date: *const GDate) -> GDateWeekday;
3277 pub fn g_date_get_year(date: *const GDate) -> GDateYear;
3278 pub fn g_date_is_first_of_month(date: *const GDate) -> gboolean;
3279 pub fn g_date_is_last_of_month(date: *const GDate) -> gboolean;
3280 pub fn g_date_order(date1: *mut GDate, date2: *mut GDate);
3281 pub fn g_date_set_day(date: *mut GDate, day: GDateDay);
3282 pub fn g_date_set_dmy(date: *mut GDate, day: GDateDay, month: GDateMonth, y: GDateYear);
3283 pub fn g_date_set_julian(date: *mut GDate, julian_date: u32);
3284 pub fn g_date_set_month(date: *mut GDate, month: GDateMonth);
3285 pub fn g_date_set_parse(date: *mut GDate, str: *const c_char);
3286 pub fn g_date_set_time(date: *mut GDate, time_: GTime);
3287 pub fn g_date_set_time_t(date: *mut GDate, timet: time_t);
3288 pub fn g_date_set_time_val(date: *mut GDate, timeval: *mut GTimeVal);
3289 pub fn g_date_set_year(date: *mut GDate, year: GDateYear);
3290 pub fn g_date_subtract_days(date: *mut GDate, n_days: c_uint);
3291 pub fn g_date_subtract_months(date: *mut GDate, n_months: c_uint);
3292 pub fn g_date_subtract_years(date: *mut GDate, n_years: c_uint);
3293 pub fn g_date_valid(date: *const GDate) -> gboolean;
3295 pub fn g_date_get_days_in_month(month: GDateMonth, year: GDateYear) -> u8;
3296 pub fn g_date_get_monday_weeks_in_year(year: GDateYear) -> u8;
3297 pub fn g_date_get_sunday_weeks_in_year(year: GDateYear) -> u8;
3298 #[cfg(feature = "v2_86")]
3299 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
3300 pub fn g_date_get_weeks_in_year(year: GDateYear, first_day_of_week: GDateWeekday) -> u8;
3301 pub fn g_date_is_leap_year(year: GDateYear) -> gboolean;
3302 pub fn g_date_strftime(
3303 s: *mut c_char,
3304 slen: size_t,
3305 format: *const c_char,
3306 date: *const GDate,
3307 ) -> size_t;
3308 pub fn g_date_valid_day(day: GDateDay) -> gboolean;
3309 pub fn g_date_valid_dmy(day: GDateDay, month: GDateMonth, year: GDateYear) -> gboolean;
3310 pub fn g_date_valid_julian(julian_date: u32) -> gboolean;
3311 pub fn g_date_valid_month(month: GDateMonth) -> gboolean;
3312 pub fn g_date_valid_weekday(weekday: GDateWeekday) -> gboolean;
3313 pub fn g_date_valid_year(year: GDateYear) -> gboolean;
3314
3315 pub fn g_date_time_get_type() -> GType;
3319 pub fn g_date_time_new(
3320 tz: *mut GTimeZone,
3321 year: c_int,
3322 month: c_int,
3323 day: c_int,
3324 hour: c_int,
3325 minute: c_int,
3326 seconds: c_double,
3327 ) -> *mut GDateTime;
3328 pub fn g_date_time_new_from_iso8601(
3329 text: *const c_char,
3330 default_tz: *mut GTimeZone,
3331 ) -> *mut GDateTime;
3332 pub fn g_date_time_new_from_timeval_local(tv: *const GTimeVal) -> *mut GDateTime;
3333 pub fn g_date_time_new_from_timeval_utc(tv: *const GTimeVal) -> *mut GDateTime;
3334 pub fn g_date_time_new_from_unix_local(t: i64) -> *mut GDateTime;
3335 #[cfg(feature = "v2_80")]
3336 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
3337 pub fn g_date_time_new_from_unix_local_usec(usecs: i64) -> *mut GDateTime;
3338 pub fn g_date_time_new_from_unix_utc(t: i64) -> *mut GDateTime;
3339 #[cfg(feature = "v2_80")]
3340 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
3341 pub fn g_date_time_new_from_unix_utc_usec(usecs: i64) -> *mut GDateTime;
3342 pub fn g_date_time_new_local(
3343 year: c_int,
3344 month: c_int,
3345 day: c_int,
3346 hour: c_int,
3347 minute: c_int,
3348 seconds: c_double,
3349 ) -> *mut GDateTime;
3350 pub fn g_date_time_new_now(tz: *mut GTimeZone) -> *mut GDateTime;
3351 pub fn g_date_time_new_now_local() -> *mut GDateTime;
3352 pub fn g_date_time_new_now_utc() -> *mut GDateTime;
3353 pub fn g_date_time_new_utc(
3354 year: c_int,
3355 month: c_int,
3356 day: c_int,
3357 hour: c_int,
3358 minute: c_int,
3359 seconds: c_double,
3360 ) -> *mut GDateTime;
3361 pub fn g_date_time_add(datetime: *mut GDateTime, timespan: GTimeSpan) -> *mut GDateTime;
3362 pub fn g_date_time_add_days(datetime: *mut GDateTime, days: c_int) -> *mut GDateTime;
3363 pub fn g_date_time_add_full(
3364 datetime: *mut GDateTime,
3365 years: c_int,
3366 months: c_int,
3367 days: c_int,
3368 hours: c_int,
3369 minutes: c_int,
3370 seconds: c_double,
3371 ) -> *mut GDateTime;
3372 pub fn g_date_time_add_hours(datetime: *mut GDateTime, hours: c_int) -> *mut GDateTime;
3373 pub fn g_date_time_add_minutes(datetime: *mut GDateTime, minutes: c_int) -> *mut GDateTime;
3374 pub fn g_date_time_add_months(datetime: *mut GDateTime, months: c_int) -> *mut GDateTime;
3375 pub fn g_date_time_add_seconds(datetime: *mut GDateTime, seconds: c_double) -> *mut GDateTime;
3376 pub fn g_date_time_add_weeks(datetime: *mut GDateTime, weeks: c_int) -> *mut GDateTime;
3377 pub fn g_date_time_add_years(datetime: *mut GDateTime, years: c_int) -> *mut GDateTime;
3378 pub fn g_date_time_compare(dt1: gconstpointer, dt2: gconstpointer) -> c_int;
3379 pub fn g_date_time_difference(end: *mut GDateTime, begin: *mut GDateTime) -> GTimeSpan;
3380 pub fn g_date_time_equal(dt1: gconstpointer, dt2: gconstpointer) -> gboolean;
3381 pub fn g_date_time_format(datetime: *mut GDateTime, format: *const c_char) -> *mut c_char;
3382 #[cfg(feature = "v2_62")]
3383 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
3384 pub fn g_date_time_format_iso8601(datetime: *mut GDateTime) -> *mut c_char;
3385 pub fn g_date_time_get_day_of_month(datetime: *mut GDateTime) -> c_int;
3386 pub fn g_date_time_get_day_of_week(datetime: *mut GDateTime) -> c_int;
3387 pub fn g_date_time_get_day_of_year(datetime: *mut GDateTime) -> c_int;
3388 pub fn g_date_time_get_hour(datetime: *mut GDateTime) -> c_int;
3389 pub fn g_date_time_get_microsecond(datetime: *mut GDateTime) -> c_int;
3390 pub fn g_date_time_get_minute(datetime: *mut GDateTime) -> c_int;
3391 pub fn g_date_time_get_month(datetime: *mut GDateTime) -> c_int;
3392 pub fn g_date_time_get_second(datetime: *mut GDateTime) -> c_int;
3393 pub fn g_date_time_get_seconds(datetime: *mut GDateTime) -> c_double;
3394 #[cfg(feature = "v2_58")]
3395 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
3396 pub fn g_date_time_get_timezone(datetime: *mut GDateTime) -> *mut GTimeZone;
3397 pub fn g_date_time_get_timezone_abbreviation(datetime: *mut GDateTime) -> *const c_char;
3398 pub fn g_date_time_get_utc_offset(datetime: *mut GDateTime) -> GTimeSpan;
3399 pub fn g_date_time_get_week_numbering_year(datetime: *mut GDateTime) -> c_int;
3400 pub fn g_date_time_get_week_of_year(datetime: *mut GDateTime) -> c_int;
3401 pub fn g_date_time_get_year(datetime: *mut GDateTime) -> c_int;
3402 pub fn g_date_time_get_ymd(
3403 datetime: *mut GDateTime,
3404 year: *mut c_int,
3405 month: *mut c_int,
3406 day: *mut c_int,
3407 );
3408 pub fn g_date_time_hash(datetime: gconstpointer) -> c_uint;
3409 pub fn g_date_time_is_daylight_savings(datetime: *mut GDateTime) -> gboolean;
3410 pub fn g_date_time_ref(datetime: *mut GDateTime) -> *mut GDateTime;
3411 pub fn g_date_time_to_local(datetime: *mut GDateTime) -> *mut GDateTime;
3412 pub fn g_date_time_to_timeval(datetime: *mut GDateTime, tv: *mut GTimeVal) -> gboolean;
3413 pub fn g_date_time_to_timezone(datetime: *mut GDateTime, tz: *mut GTimeZone) -> *mut GDateTime;
3414 pub fn g_date_time_to_unix(datetime: *mut GDateTime) -> i64;
3415 #[cfg(feature = "v2_80")]
3416 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
3417 pub fn g_date_time_to_unix_usec(datetime: *mut GDateTime) -> i64;
3418 pub fn g_date_time_to_utc(datetime: *mut GDateTime) -> *mut GDateTime;
3419 pub fn g_date_time_unref(datetime: *mut GDateTime);
3420
3421 pub fn g_dir_get_type() -> GType;
3425 pub fn g_dir_open(path: *const c_char, flags: c_uint, error: *mut *mut GError) -> *mut GDir;
3426 pub fn g_dir_close(dir: *mut GDir);
3427 pub fn g_dir_read_name(dir: *mut GDir) -> *const c_char;
3428 #[cfg(feature = "v2_80")]
3429 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
3430 pub fn g_dir_ref(dir: *mut GDir) -> *mut GDir;
3431 pub fn g_dir_rewind(dir: *mut GDir);
3432 #[cfg(feature = "v2_80")]
3433 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
3434 pub fn g_dir_unref(dir: *mut GDir);
3435 pub fn g_dir_make_tmp(tmpl: *const c_char, error: *mut *mut GError) -> *mut c_char;
3436
3437 pub fn g_error_get_type() -> GType;
3441 pub fn g_error_new(domain: GQuark, code: c_int, format: *const c_char, ...) -> *mut GError;
3442 pub fn g_error_new_literal(domain: GQuark, code: c_int, message: *const c_char) -> *mut GError;
3443 pub fn g_error_copy(error: *const GError) -> *mut GError;
3445 pub fn g_error_free(error: *mut GError);
3446 pub fn g_error_matches(error: *const GError, domain: GQuark, code: c_int) -> gboolean;
3447 #[cfg(feature = "v2_68")]
3448 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
3449 pub fn g_error_domain_register(
3450 error_type_name: *const c_char,
3451 error_type_private_size: size_t,
3452 error_type_init: GErrorInitFunc,
3453 error_type_copy: GErrorCopyFunc,
3454 error_type_clear: GErrorClearFunc,
3455 ) -> GQuark;
3456 #[cfg(feature = "v2_68")]
3457 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
3458 pub fn g_error_domain_register_static(
3459 error_type_name: *const c_char,
3460 error_type_private_size: size_t,
3461 error_type_init: GErrorInitFunc,
3462 error_type_copy: GErrorCopyFunc,
3463 error_type_clear: GErrorClearFunc,
3464 ) -> GQuark;
3465
3466 pub fn g_hash_table_get_type() -> GType;
3470 pub fn g_hash_table_add(hash_table: *mut GHashTable, key: gpointer) -> gboolean;
3471 pub fn g_hash_table_contains(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
3472 pub fn g_hash_table_destroy(hash_table: *mut GHashTable);
3473 pub fn g_hash_table_find(
3474 hash_table: *mut GHashTable,
3475 predicate: GHRFunc,
3476 user_data: gpointer,
3477 ) -> gpointer;
3478 pub fn g_hash_table_foreach(hash_table: *mut GHashTable, func: GHFunc, user_data: gpointer);
3479 pub fn g_hash_table_foreach_remove(
3480 hash_table: *mut GHashTable,
3481 func: GHRFunc,
3482 user_data: gpointer,
3483 ) -> c_uint;
3484 pub fn g_hash_table_foreach_steal(
3485 hash_table: *mut GHashTable,
3486 func: GHRFunc,
3487 user_data: gpointer,
3488 ) -> c_uint;
3489 pub fn g_hash_table_get_keys(hash_table: *mut GHashTable) -> *mut GList;
3490 pub fn g_hash_table_get_keys_as_array(
3491 hash_table: *mut GHashTable,
3492 length: *mut c_uint,
3493 ) -> *mut gpointer;
3494 #[cfg(feature = "v2_76")]
3495 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
3496 pub fn g_hash_table_get_keys_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray;
3497 pub fn g_hash_table_get_values(hash_table: *mut GHashTable) -> *mut GList;
3498 #[cfg(feature = "v2_76")]
3499 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
3500 pub fn g_hash_table_get_values_as_ptr_array(hash_table: *mut GHashTable) -> *mut GPtrArray;
3501 pub fn g_hash_table_insert(
3502 hash_table: *mut GHashTable,
3503 key: gpointer,
3504 value: gpointer,
3505 ) -> gboolean;
3506 pub fn g_hash_table_lookup(hash_table: *mut GHashTable, key: gconstpointer) -> gpointer;
3507 pub fn g_hash_table_lookup_extended(
3508 hash_table: *mut GHashTable,
3509 lookup_key: gconstpointer,
3510 orig_key: *mut gpointer,
3511 value: *mut gpointer,
3512 ) -> gboolean;
3513 pub fn g_hash_table_new(hash_func: GHashFunc, key_equal_func: GEqualFunc) -> *mut GHashTable;
3514 pub fn g_hash_table_new_full(
3515 hash_func: GHashFunc,
3516 key_equal_func: GEqualFunc,
3517 key_destroy_func: GDestroyNotify,
3518 value_destroy_func: GDestroyNotify,
3519 ) -> *mut GHashTable;
3520 #[cfg(feature = "v2_72")]
3521 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
3522 pub fn g_hash_table_new_similar(other_hash_table: *mut GHashTable) -> *mut GHashTable;
3523 pub fn g_hash_table_ref(hash_table: *mut GHashTable) -> *mut GHashTable;
3524 pub fn g_hash_table_remove(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
3525 pub fn g_hash_table_remove_all(hash_table: *mut GHashTable);
3526 pub fn g_hash_table_replace(
3527 hash_table: *mut GHashTable,
3528 key: gpointer,
3529 value: gpointer,
3530 ) -> gboolean;
3531 pub fn g_hash_table_size(hash_table: *mut GHashTable) -> c_uint;
3532 pub fn g_hash_table_steal(hash_table: *mut GHashTable, key: gconstpointer) -> gboolean;
3533 pub fn g_hash_table_steal_all(hash_table: *mut GHashTable);
3534 #[cfg(feature = "v2_76")]
3535 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
3536 pub fn g_hash_table_steal_all_keys(hash_table: *mut GHashTable) -> *mut GPtrArray;
3537 #[cfg(feature = "v2_76")]
3538 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
3539 pub fn g_hash_table_steal_all_values(hash_table: *mut GHashTable) -> *mut GPtrArray;
3540 #[cfg(feature = "v2_58")]
3541 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
3542 pub fn g_hash_table_steal_extended(
3543 hash_table: *mut GHashTable,
3544 lookup_key: gconstpointer,
3545 stolen_key: *mut gpointer,
3546 stolen_value: *mut gpointer,
3547 ) -> gboolean;
3548 pub fn g_hash_table_unref(hash_table: *mut GHashTable);
3549
3550 pub fn g_hash_table_iter_get_hash_table(iter: *mut GHashTableIter) -> *mut GHashTable;
3554 pub fn g_hash_table_iter_init(iter: *mut GHashTableIter, hash_table: *mut GHashTable);
3555 pub fn g_hash_table_iter_next(
3556 iter: *mut GHashTableIter,
3557 key: *mut gpointer,
3558 value: *mut gpointer,
3559 ) -> gboolean;
3560 pub fn g_hash_table_iter_remove(iter: *mut GHashTableIter);
3561 pub fn g_hash_table_iter_replace(iter: *mut GHashTableIter, value: gpointer);
3562 pub fn g_hash_table_iter_steal(iter: *mut GHashTableIter);
3563
3564 pub fn g_hmac_get_type() -> GType;
3568 pub fn g_hmac_new(digest_type: GChecksumType, key: *const u8, key_len: size_t) -> *mut GHmac;
3569 pub fn g_hmac_copy(hmac: *const GHmac) -> *mut GHmac;
3570 pub fn g_hmac_get_digest(hmac: *mut GHmac, buffer: *mut u8, digest_len: *mut size_t);
3571 pub fn g_hmac_get_string(hmac: *mut GHmac) -> *const c_char;
3572 pub fn g_hmac_ref(hmac: *mut GHmac) -> *mut GHmac;
3573 pub fn g_hmac_unref(hmac: *mut GHmac);
3574 pub fn g_hmac_update(hmac: *mut GHmac, data: *const u8, length: ssize_t);
3575
3576 pub fn g_hook_compare_ids(new_hook: *mut GHook, sibling: *mut GHook) -> c_int;
3580 pub fn g_hook_alloc(hook_list: *mut GHookList) -> *mut GHook;
3581 pub fn g_hook_destroy(hook_list: *mut GHookList, hook_id: c_ulong) -> gboolean;
3582 pub fn g_hook_destroy_link(hook_list: *mut GHookList, hook: *mut GHook);
3583 pub fn g_hook_find(
3584 hook_list: *mut GHookList,
3585 need_valids: gboolean,
3586 func: GHookFindFunc,
3587 data: gpointer,
3588 ) -> *mut GHook;
3589 pub fn g_hook_find_data(
3590 hook_list: *mut GHookList,
3591 need_valids: gboolean,
3592 data: gpointer,
3593 ) -> *mut GHook;
3594 pub fn g_hook_find_func(
3595 hook_list: *mut GHookList,
3596 need_valids: gboolean,
3597 func: gpointer,
3598 ) -> *mut GHook;
3599 pub fn g_hook_find_func_data(
3600 hook_list: *mut GHookList,
3601 need_valids: gboolean,
3602 func: gpointer,
3603 data: gpointer,
3604 ) -> *mut GHook;
3605 pub fn g_hook_first_valid(hook_list: *mut GHookList, may_be_in_call: gboolean) -> *mut GHook;
3606 pub fn g_hook_free(hook_list: *mut GHookList, hook: *mut GHook);
3607 pub fn g_hook_get(hook_list: *mut GHookList, hook_id: c_ulong) -> *mut GHook;
3608 pub fn g_hook_insert_before(hook_list: *mut GHookList, sibling: *mut GHook, hook: *mut GHook);
3609 pub fn g_hook_insert_sorted(
3610 hook_list: *mut GHookList,
3611 hook: *mut GHook,
3612 func: GHookCompareFunc,
3613 );
3614 pub fn g_hook_next_valid(
3615 hook_list: *mut GHookList,
3616 hook: *mut GHook,
3617 may_be_in_call: gboolean,
3618 ) -> *mut GHook;
3619 pub fn g_hook_prepend(hook_list: *mut GHookList, hook: *mut GHook);
3620 pub fn g_hook_ref(hook_list: *mut GHookList, hook: *mut GHook) -> *mut GHook;
3621 pub fn g_hook_unref(hook_list: *mut GHookList, hook: *mut GHook);
3622
3623 pub fn g_hook_list_clear(hook_list: *mut GHookList);
3627 pub fn g_hook_list_init(hook_list: *mut GHookList, hook_size: c_uint);
3628 pub fn g_hook_list_invoke(hook_list: *mut GHookList, may_recurse: gboolean);
3629 pub fn g_hook_list_invoke_check(hook_list: *mut GHookList, may_recurse: gboolean);
3630 pub fn g_hook_list_marshal(
3631 hook_list: *mut GHookList,
3632 may_recurse: gboolean,
3633 marshaller: GHookMarshaller,
3634 marshal_data: gpointer,
3635 );
3636 pub fn g_hook_list_marshal_check(
3637 hook_list: *mut GHookList,
3638 may_recurse: gboolean,
3639 marshaller: GHookCheckMarshaller,
3640 marshal_data: gpointer,
3641 );
3642
3643 pub fn g_iconv_close(converter: GIConv) -> c_int;
3647 pub fn g_iconv_open(to_codeset: *const c_char, from_codeset: *const c_char) -> GIConv;
3648
3649 pub fn g_io_channel_get_type() -> GType;
3653 pub fn g_io_channel_new_file(
3654 filename: *const c_char,
3655 mode: *const c_char,
3656 error: *mut *mut GError,
3657 ) -> *mut GIOChannel;
3658 pub fn g_io_channel_unix_new(fd: c_int) -> *mut GIOChannel;
3659 pub fn g_io_channel_close(channel: *mut GIOChannel);
3660 pub fn g_io_channel_flush(channel: *mut GIOChannel, error: *mut *mut GError) -> GIOStatus;
3661 pub fn g_io_channel_get_buffer_condition(channel: *mut GIOChannel) -> GIOCondition;
3662 pub fn g_io_channel_get_buffer_size(channel: *mut GIOChannel) -> size_t;
3663 pub fn g_io_channel_get_buffered(channel: *mut GIOChannel) -> gboolean;
3664 pub fn g_io_channel_get_close_on_unref(channel: *mut GIOChannel) -> gboolean;
3665 pub fn g_io_channel_get_encoding(channel: *mut GIOChannel) -> *const c_char;
3666 pub fn g_io_channel_get_flags(channel: *mut GIOChannel) -> GIOFlags;
3667 pub fn g_io_channel_get_line_term(
3668 channel: *mut GIOChannel,
3669 length: *mut c_int,
3670 ) -> *const c_char;
3671 pub fn g_io_channel_init(channel: *mut GIOChannel);
3672 pub fn g_io_channel_read(
3673 channel: *mut GIOChannel,
3674 buf: *mut c_char,
3675 count: size_t,
3676 bytes_read: *mut size_t,
3677 ) -> GIOError;
3678 pub fn g_io_channel_read_chars(
3679 channel: *mut GIOChannel,
3680 buf: *mut u8,
3681 count: size_t,
3682 bytes_read: *mut size_t,
3683 error: *mut *mut GError,
3684 ) -> GIOStatus;
3685 pub fn g_io_channel_read_line(
3686 channel: *mut GIOChannel,
3687 str_return: *mut *mut c_char,
3688 length: *mut size_t,
3689 terminator_pos: *mut size_t,
3690 error: *mut *mut GError,
3691 ) -> GIOStatus;
3692 pub fn g_io_channel_read_line_string(
3693 channel: *mut GIOChannel,
3694 buffer: *mut GString,
3695 terminator_pos: *mut size_t,
3696 error: *mut *mut GError,
3697 ) -> GIOStatus;
3698 pub fn g_io_channel_read_to_end(
3699 channel: *mut GIOChannel,
3700 str_return: *mut *mut u8,
3701 length: *mut size_t,
3702 error: *mut *mut GError,
3703 ) -> GIOStatus;
3704 pub fn g_io_channel_read_unichar(
3705 channel: *mut GIOChannel,
3706 thechar: *mut u32,
3707 error: *mut *mut GError,
3708 ) -> GIOStatus;
3709 pub fn g_io_channel_ref(channel: *mut GIOChannel) -> *mut GIOChannel;
3710 pub fn g_io_channel_seek(channel: *mut GIOChannel, offset: i64, type_: GSeekType) -> GIOError;
3711 pub fn g_io_channel_seek_position(
3712 channel: *mut GIOChannel,
3713 offset: i64,
3714 type_: GSeekType,
3715 error: *mut *mut GError,
3716 ) -> GIOStatus;
3717 pub fn g_io_channel_set_buffer_size(channel: *mut GIOChannel, size: size_t);
3718 pub fn g_io_channel_set_buffered(channel: *mut GIOChannel, buffered: gboolean);
3719 pub fn g_io_channel_set_close_on_unref(channel: *mut GIOChannel, do_close: gboolean);
3720 pub fn g_io_channel_set_encoding(
3721 channel: *mut GIOChannel,
3722 encoding: *const c_char,
3723 error: *mut *mut GError,
3724 ) -> GIOStatus;
3725 pub fn g_io_channel_set_flags(
3726 channel: *mut GIOChannel,
3727 flags: GIOFlags,
3728 error: *mut *mut GError,
3729 ) -> GIOStatus;
3730 pub fn g_io_channel_set_line_term(
3731 channel: *mut GIOChannel,
3732 line_term: *const c_char,
3733 length: c_int,
3734 );
3735 pub fn g_io_channel_shutdown(
3736 channel: *mut GIOChannel,
3737 flush: gboolean,
3738 error: *mut *mut GError,
3739 ) -> GIOStatus;
3740 pub fn g_io_channel_unix_get_fd(channel: *mut GIOChannel) -> c_int;
3741 pub fn g_io_channel_unref(channel: *mut GIOChannel);
3742 pub fn g_io_channel_write(
3743 channel: *mut GIOChannel,
3744 buf: *const c_char,
3745 count: size_t,
3746 bytes_written: *mut size_t,
3747 ) -> GIOError;
3748 pub fn g_io_channel_write_chars(
3749 channel: *mut GIOChannel,
3750 buf: *const u8,
3751 count: ssize_t,
3752 bytes_written: *mut size_t,
3753 error: *mut *mut GError,
3754 ) -> GIOStatus;
3755 pub fn g_io_channel_write_unichar(
3756 channel: *mut GIOChannel,
3757 thechar: u32,
3758 error: *mut *mut GError,
3759 ) -> GIOStatus;
3760 pub fn g_io_channel_error_from_errno(en: c_int) -> GIOChannelError;
3761 pub fn g_io_channel_error_quark() -> GQuark;
3762
3763 pub fn g_key_file_get_type() -> GType;
3767 pub fn g_key_file_new() -> *mut GKeyFile;
3768 pub fn g_key_file_free(key_file: *mut GKeyFile);
3769 pub fn g_key_file_get_boolean(
3770 key_file: *mut GKeyFile,
3771 group_name: *const c_char,
3772 key: *const c_char,
3773 error: *mut *mut GError,
3774 ) -> gboolean;
3775 pub fn g_key_file_get_boolean_list(
3776 key_file: *mut GKeyFile,
3777 group_name: *const c_char,
3778 key: *const c_char,
3779 length: *mut size_t,
3780 error: *mut *mut GError,
3781 ) -> *mut gboolean;
3782 pub fn g_key_file_get_comment(
3783 key_file: *mut GKeyFile,
3784 group_name: *const c_char,
3785 key: *const c_char,
3786 error: *mut *mut GError,
3787 ) -> *mut c_char;
3788 pub fn g_key_file_get_double(
3789 key_file: *mut GKeyFile,
3790 group_name: *const c_char,
3791 key: *const c_char,
3792 error: *mut *mut GError,
3793 ) -> c_double;
3794 pub fn g_key_file_get_double_list(
3795 key_file: *mut GKeyFile,
3796 group_name: *const c_char,
3797 key: *const c_char,
3798 length: *mut size_t,
3799 error: *mut *mut GError,
3800 ) -> *mut c_double;
3801 pub fn g_key_file_get_groups(key_file: *mut GKeyFile, length: *mut size_t) -> *mut *mut c_char;
3802 pub fn g_key_file_get_int64(
3803 key_file: *mut GKeyFile,
3804 group_name: *const c_char,
3805 key: *const c_char,
3806 error: *mut *mut GError,
3807 ) -> i64;
3808 pub fn g_key_file_get_integer(
3809 key_file: *mut GKeyFile,
3810 group_name: *const c_char,
3811 key: *const c_char,
3812 error: *mut *mut GError,
3813 ) -> c_int;
3814 pub fn g_key_file_get_integer_list(
3815 key_file: *mut GKeyFile,
3816 group_name: *const c_char,
3817 key: *const c_char,
3818 length: *mut size_t,
3819 error: *mut *mut GError,
3820 ) -> *mut c_int;
3821 pub fn g_key_file_get_keys(
3822 key_file: *mut GKeyFile,
3823 group_name: *const c_char,
3824 length: *mut size_t,
3825 error: *mut *mut GError,
3826 ) -> *mut *mut c_char;
3827 pub fn g_key_file_get_locale_for_key(
3828 key_file: *mut GKeyFile,
3829 group_name: *const c_char,
3830 key: *const c_char,
3831 locale: *const c_char,
3832 ) -> *mut c_char;
3833 pub fn g_key_file_get_locale_string(
3834 key_file: *mut GKeyFile,
3835 group_name: *const c_char,
3836 key: *const c_char,
3837 locale: *const c_char,
3838 error: *mut *mut GError,
3839 ) -> *mut c_char;
3840 pub fn g_key_file_get_locale_string_list(
3841 key_file: *mut GKeyFile,
3842 group_name: *const c_char,
3843 key: *const c_char,
3844 locale: *const c_char,
3845 length: *mut size_t,
3846 error: *mut *mut GError,
3847 ) -> *mut *mut c_char;
3848 pub fn g_key_file_get_start_group(key_file: *mut GKeyFile) -> *mut c_char;
3849 pub fn g_key_file_get_string(
3850 key_file: *mut GKeyFile,
3851 group_name: *const c_char,
3852 key: *const c_char,
3853 error: *mut *mut GError,
3854 ) -> *mut c_char;
3855 pub fn g_key_file_get_string_list(
3856 key_file: *mut GKeyFile,
3857 group_name: *const c_char,
3858 key: *const c_char,
3859 length: *mut size_t,
3860 error: *mut *mut GError,
3861 ) -> *mut *mut c_char;
3862 pub fn g_key_file_get_uint64(
3863 key_file: *mut GKeyFile,
3864 group_name: *const c_char,
3865 key: *const c_char,
3866 error: *mut *mut GError,
3867 ) -> u64;
3868 pub fn g_key_file_get_value(
3869 key_file: *mut GKeyFile,
3870 group_name: *const c_char,
3871 key: *const c_char,
3872 error: *mut *mut GError,
3873 ) -> *mut c_char;
3874 pub fn g_key_file_has_group(key_file: *mut GKeyFile, group_name: *const c_char) -> gboolean;
3875 pub fn g_key_file_has_key(
3876 key_file: *mut GKeyFile,
3877 group_name: *const c_char,
3878 key: *const c_char,
3879 error: *mut *mut GError,
3880 ) -> gboolean;
3881 pub fn g_key_file_load_from_bytes(
3882 key_file: *mut GKeyFile,
3883 bytes: *mut GBytes,
3884 flags: GKeyFileFlags,
3885 error: *mut *mut GError,
3886 ) -> gboolean;
3887 pub fn g_key_file_load_from_data(
3888 key_file: *mut GKeyFile,
3889 data: *const c_char,
3890 length: size_t,
3891 flags: GKeyFileFlags,
3892 error: *mut *mut GError,
3893 ) -> gboolean;
3894 pub fn g_key_file_load_from_data_dirs(
3895 key_file: *mut GKeyFile,
3896 file: *const c_char,
3897 full_path: *mut *mut c_char,
3898 flags: GKeyFileFlags,
3899 error: *mut *mut GError,
3900 ) -> gboolean;
3901 pub fn g_key_file_load_from_dirs(
3902 key_file: *mut GKeyFile,
3903 file: *const c_char,
3904 search_dirs: *mut *const c_char,
3905 full_path: *mut *mut c_char,
3906 flags: GKeyFileFlags,
3907 error: *mut *mut GError,
3908 ) -> gboolean;
3909 pub fn g_key_file_load_from_file(
3910 key_file: *mut GKeyFile,
3911 file: *const c_char,
3912 flags: GKeyFileFlags,
3913 error: *mut *mut GError,
3914 ) -> gboolean;
3915 pub fn g_key_file_ref(key_file: *mut GKeyFile) -> *mut GKeyFile;
3916 pub fn g_key_file_remove_comment(
3917 key_file: *mut GKeyFile,
3918 group_name: *const c_char,
3919 key: *const c_char,
3920 error: *mut *mut GError,
3921 ) -> gboolean;
3922 pub fn g_key_file_remove_group(
3923 key_file: *mut GKeyFile,
3924 group_name: *const c_char,
3925 error: *mut *mut GError,
3926 ) -> gboolean;
3927 pub fn g_key_file_remove_key(
3928 key_file: *mut GKeyFile,
3929 group_name: *const c_char,
3930 key: *const c_char,
3931 error: *mut *mut GError,
3932 ) -> gboolean;
3933 pub fn g_key_file_save_to_file(
3934 key_file: *mut GKeyFile,
3935 filename: *const c_char,
3936 error: *mut *mut GError,
3937 ) -> gboolean;
3938 pub fn g_key_file_set_boolean(
3939 key_file: *mut GKeyFile,
3940 group_name: *const c_char,
3941 key: *const c_char,
3942 value: gboolean,
3943 );
3944 pub fn g_key_file_set_boolean_list(
3945 key_file: *mut GKeyFile,
3946 group_name: *const c_char,
3947 key: *const c_char,
3948 list: *mut gboolean,
3949 length: size_t,
3950 );
3951 pub fn g_key_file_set_comment(
3952 key_file: *mut GKeyFile,
3953 group_name: *const c_char,
3954 key: *const c_char,
3955 comment: *const c_char,
3956 error: *mut *mut GError,
3957 ) -> gboolean;
3958 pub fn g_key_file_set_double(
3959 key_file: *mut GKeyFile,
3960 group_name: *const c_char,
3961 key: *const c_char,
3962 value: c_double,
3963 );
3964 pub fn g_key_file_set_double_list(
3965 key_file: *mut GKeyFile,
3966 group_name: *const c_char,
3967 key: *const c_char,
3968 list: *mut c_double,
3969 length: size_t,
3970 );
3971 pub fn g_key_file_set_int64(
3972 key_file: *mut GKeyFile,
3973 group_name: *const c_char,
3974 key: *const c_char,
3975 value: i64,
3976 );
3977 pub fn g_key_file_set_integer(
3978 key_file: *mut GKeyFile,
3979 group_name: *const c_char,
3980 key: *const c_char,
3981 value: c_int,
3982 );
3983 pub fn g_key_file_set_integer_list(
3984 key_file: *mut GKeyFile,
3985 group_name: *const c_char,
3986 key: *const c_char,
3987 list: *mut c_int,
3988 length: size_t,
3989 );
3990 pub fn g_key_file_set_list_separator(key_file: *mut GKeyFile, separator: c_char);
3991 pub fn g_key_file_set_locale_string(
3992 key_file: *mut GKeyFile,
3993 group_name: *const c_char,
3994 key: *const c_char,
3995 locale: *const c_char,
3996 string: *const c_char,
3997 );
3998 pub fn g_key_file_set_locale_string_list(
3999 key_file: *mut GKeyFile,
4000 group_name: *const c_char,
4001 key: *const c_char,
4002 locale: *const c_char,
4003 list: *const *const c_char,
4004 length: size_t,
4005 );
4006 pub fn g_key_file_set_string(
4007 key_file: *mut GKeyFile,
4008 group_name: *const c_char,
4009 key: *const c_char,
4010 string: *const c_char,
4011 );
4012 pub fn g_key_file_set_string_list(
4013 key_file: *mut GKeyFile,
4014 group_name: *const c_char,
4015 key: *const c_char,
4016 list: *const *const c_char,
4017 length: size_t,
4018 );
4019 pub fn g_key_file_set_uint64(
4020 key_file: *mut GKeyFile,
4021 group_name: *const c_char,
4022 key: *const c_char,
4023 value: u64,
4024 );
4025 pub fn g_key_file_set_value(
4026 key_file: *mut GKeyFile,
4027 group_name: *const c_char,
4028 key: *const c_char,
4029 value: *const c_char,
4030 );
4031 pub fn g_key_file_to_data(
4032 key_file: *mut GKeyFile,
4033 length: *mut size_t,
4034 error: *mut *mut GError,
4035 ) -> *mut c_char;
4036 pub fn g_key_file_unref(key_file: *mut GKeyFile);
4037 pub fn g_key_file_error_quark() -> GQuark;
4038
4039 pub fn g_list_alloc() -> *mut GList;
4043 pub fn g_list_append(list: *mut GList, data: gpointer) -> *mut GList;
4044 pub fn g_list_concat(list1: *mut GList, list2: *mut GList) -> *mut GList;
4045 pub fn g_list_copy(list: *mut GList) -> *mut GList;
4046 pub fn g_list_copy_deep(list: *mut GList, func: GCopyFunc, user_data: gpointer) -> *mut GList;
4047 pub fn g_list_delete_link(list: *mut GList, link_: *mut GList) -> *mut GList;
4048 pub fn g_list_find(list: *mut GList, data: gconstpointer) -> *mut GList;
4049 pub fn g_list_find_custom(
4050 list: *mut GList,
4051 data: gconstpointer,
4052 func: GCompareFunc,
4053 ) -> *mut GList;
4054 pub fn g_list_first(list: *mut GList) -> *mut GList;
4055 pub fn g_list_foreach(list: *mut GList, func: GFunc, user_data: gpointer);
4056 pub fn g_list_free(list: *mut GList);
4057 pub fn g_list_free_1(list: *mut GList);
4058 pub fn g_list_free_full(list: *mut GList, free_func: GDestroyNotify);
4059 pub fn g_list_index(list: *mut GList, data: gconstpointer) -> c_int;
4060 pub fn g_list_insert(list: *mut GList, data: gpointer, position: c_int) -> *mut GList;
4061 pub fn g_list_insert_before(
4062 list: *mut GList,
4063 sibling: *mut GList,
4064 data: gpointer,
4065 ) -> *mut GList;
4066 #[cfg(feature = "v2_62")]
4067 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4068 pub fn g_list_insert_before_link(
4069 list: *mut GList,
4070 sibling: *mut GList,
4071 link_: *mut GList,
4072 ) -> *mut GList;
4073 pub fn g_list_insert_sorted(list: *mut GList, data: gpointer, func: GCompareFunc)
4074 -> *mut GList;
4075 pub fn g_list_insert_sorted_with_data(
4076 list: *mut GList,
4077 data: gpointer,
4078 func: GCompareDataFunc,
4079 user_data: gpointer,
4080 ) -> *mut GList;
4081 pub fn g_list_last(list: *mut GList) -> *mut GList;
4082 pub fn g_list_length(list: *mut GList) -> c_uint;
4083 pub fn g_list_nth(list: *mut GList, n: c_uint) -> *mut GList;
4084 pub fn g_list_nth_data(list: *mut GList, n: c_uint) -> gpointer;
4085 pub fn g_list_nth_prev(list: *mut GList, n: c_uint) -> *mut GList;
4086 pub fn g_list_pop_allocator();
4087 pub fn g_list_position(list: *mut GList, llink: *mut GList) -> c_int;
4088 pub fn g_list_prepend(list: *mut GList, data: gpointer) -> *mut GList;
4089 pub fn g_list_push_allocator(allocator: *mut GAllocator);
4090 pub fn g_list_remove(list: *mut GList, data: gconstpointer) -> *mut GList;
4091 pub fn g_list_remove_all(list: *mut GList, data: gconstpointer) -> *mut GList;
4092 pub fn g_list_remove_link(list: *mut GList, llink: *mut GList) -> *mut GList;
4093 pub fn g_list_reverse(list: *mut GList) -> *mut GList;
4094 pub fn g_list_sort(list: *mut GList, compare_func: GCompareFunc) -> *mut GList;
4095 pub fn g_list_sort_with_data(
4096 list: *mut GList,
4097 compare_func: GCompareDataFunc,
4098 user_data: gpointer,
4099 ) -> *mut GList;
4100
4101 pub fn g_main_context_get_type() -> GType;
4105 pub fn g_main_context_new() -> *mut GMainContext;
4106 #[cfg(feature = "v2_72")]
4107 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
4108 pub fn g_main_context_new_with_flags(flags: GMainContextFlags) -> *mut GMainContext;
4109 pub fn g_main_context_acquire(context: *mut GMainContext) -> gboolean;
4110 pub fn g_main_context_add_poll(context: *mut GMainContext, fd: *mut GPollFD, priority: c_int);
4111 pub fn g_main_context_check(
4112 context: *mut GMainContext,
4113 max_priority: c_int,
4114 fds: *mut GPollFD,
4115 n_fds: c_int,
4116 ) -> gboolean;
4117 pub fn g_main_context_dispatch(context: *mut GMainContext);
4118 pub fn g_main_context_find_source_by_funcs_user_data(
4119 context: *mut GMainContext,
4120 funcs: *mut GSourceFuncs,
4121 user_data: gpointer,
4122 ) -> *mut GSource;
4123 pub fn g_main_context_find_source_by_id(
4124 context: *mut GMainContext,
4125 source_id: c_uint,
4126 ) -> *mut GSource;
4127 pub fn g_main_context_find_source_by_user_data(
4128 context: *mut GMainContext,
4129 user_data: gpointer,
4130 ) -> *mut GSource;
4131 pub fn g_main_context_get_poll_func(context: *mut GMainContext) -> GPollFunc;
4132 pub fn g_main_context_invoke(context: *mut GMainContext, function: GSourceFunc, data: gpointer);
4133 pub fn g_main_context_invoke_full(
4134 context: *mut GMainContext,
4135 priority: c_int,
4136 function: GSourceFunc,
4137 data: gpointer,
4138 notify: GDestroyNotify,
4139 );
4140 pub fn g_main_context_is_owner(context: *mut GMainContext) -> gboolean;
4141 pub fn g_main_context_iteration(context: *mut GMainContext, may_block: gboolean) -> gboolean;
4142 pub fn g_main_context_pending(context: *mut GMainContext) -> gboolean;
4143 pub fn g_main_context_pop_thread_default(context: *mut GMainContext);
4144 pub fn g_main_context_prepare(context: *mut GMainContext, priority: *mut c_int) -> gboolean;
4145 pub fn g_main_context_push_thread_default(context: *mut GMainContext);
4146 #[cfg(feature = "v2_64")]
4147 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
4148 pub fn g_main_context_pusher_new(main_context: *mut GMainContext) -> *mut GMainContextPusher;
4149 pub fn g_main_context_query(
4150 context: *mut GMainContext,
4151 max_priority: c_int,
4152 timeout_: *mut c_int,
4153 fds: *mut GPollFD,
4154 n_fds: c_int,
4155 ) -> c_int;
4156 pub fn g_main_context_ref(context: *mut GMainContext) -> *mut GMainContext;
4157 pub fn g_main_context_release(context: *mut GMainContext);
4158 pub fn g_main_context_remove_poll(context: *mut GMainContext, fd: *mut GPollFD);
4159 pub fn g_main_context_set_poll_func(context: *mut GMainContext, func: GPollFunc);
4160 pub fn g_main_context_unref(context: *mut GMainContext);
4161 pub fn g_main_context_wait(
4162 context: *mut GMainContext,
4163 cond: *mut GCond,
4164 mutex: *mut GMutex,
4165 ) -> gboolean;
4166 pub fn g_main_context_wakeup(context: *mut GMainContext);
4167 pub fn g_main_context_default() -> *mut GMainContext;
4168 pub fn g_main_context_get_thread_default() -> *mut GMainContext;
4169 #[cfg(feature = "v2_64")]
4170 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
4171 pub fn g_main_context_pusher_free(pusher: *mut GMainContextPusher);
4172 pub fn g_main_context_ref_thread_default() -> *mut GMainContext;
4173
4174 pub fn g_main_loop_get_type() -> GType;
4178 pub fn g_main_loop_new(context: *mut GMainContext, is_running: gboolean) -> *mut GMainLoop;
4179 pub fn g_main_loop_get_context(loop_: *mut GMainLoop) -> *mut GMainContext;
4180 pub fn g_main_loop_is_running(loop_: *mut GMainLoop) -> gboolean;
4181 pub fn g_main_loop_quit(loop_: *mut GMainLoop);
4182 pub fn g_main_loop_ref(loop_: *mut GMainLoop) -> *mut GMainLoop;
4183 pub fn g_main_loop_run(loop_: *mut GMainLoop);
4184 pub fn g_main_loop_unref(loop_: *mut GMainLoop);
4185
4186 pub fn g_mapped_file_get_type() -> GType;
4190 pub fn g_mapped_file_new(
4191 filename: *const c_char,
4192 writable: gboolean,
4193 error: *mut *mut GError,
4194 ) -> *mut GMappedFile;
4195 pub fn g_mapped_file_new_from_fd(
4196 fd: c_int,
4197 writable: gboolean,
4198 error: *mut *mut GError,
4199 ) -> *mut GMappedFile;
4200 pub fn g_mapped_file_free(file: *mut GMappedFile);
4201 pub fn g_mapped_file_get_bytes(file: *mut GMappedFile) -> *mut GBytes;
4202 pub fn g_mapped_file_get_contents(file: *mut GMappedFile) -> *mut c_char;
4203 pub fn g_mapped_file_get_length(file: *mut GMappedFile) -> size_t;
4204 pub fn g_mapped_file_ref(file: *mut GMappedFile) -> *mut GMappedFile;
4205 pub fn g_mapped_file_unref(file: *mut GMappedFile);
4206
4207 pub fn g_markup_parse_context_get_type() -> GType;
4211 pub fn g_markup_parse_context_new(
4212 parser: *const GMarkupParser,
4213 flags: GMarkupParseFlags,
4214 user_data: gpointer,
4215 user_data_dnotify: GDestroyNotify,
4216 ) -> *mut GMarkupParseContext;
4217 pub fn g_markup_parse_context_end_parse(
4218 context: *mut GMarkupParseContext,
4219 error: *mut *mut GError,
4220 ) -> gboolean;
4221 pub fn g_markup_parse_context_free(context: *mut GMarkupParseContext);
4222 pub fn g_markup_parse_context_get_element(context: *mut GMarkupParseContext) -> *const c_char;
4223 pub fn g_markup_parse_context_get_element_stack(
4224 context: *mut GMarkupParseContext,
4225 ) -> *const GSList;
4226 #[cfg(feature = "v2_88")]
4227 #[cfg_attr(docsrs, doc(cfg(feature = "v2_88")))]
4228 pub fn g_markup_parse_context_get_offset(context: *mut GMarkupParseContext) -> size_t;
4229 pub fn g_markup_parse_context_get_position(
4230 context: *mut GMarkupParseContext,
4231 line_number: *mut c_int,
4232 char_number: *mut c_int,
4233 );
4234 pub fn g_markup_parse_context_get_user_data(context: *mut GMarkupParseContext) -> gpointer;
4235 pub fn g_markup_parse_context_parse(
4236 context: *mut GMarkupParseContext,
4237 text: *const c_char,
4238 text_len: ssize_t,
4239 error: *mut *mut GError,
4240 ) -> gboolean;
4241 pub fn g_markup_parse_context_pop(context: *mut GMarkupParseContext) -> gpointer;
4242 pub fn g_markup_parse_context_push(
4243 context: *mut GMarkupParseContext,
4244 parser: *const GMarkupParser,
4245 user_data: gpointer,
4246 );
4247 pub fn g_markup_parse_context_ref(
4248 context: *mut GMarkupParseContext,
4249 ) -> *mut GMarkupParseContext;
4250 pub fn g_markup_parse_context_unref(context: *mut GMarkupParseContext);
4251
4252 pub fn g_match_info_get_type() -> GType;
4256 pub fn g_match_info_expand_references(
4257 match_info: *const GMatchInfo,
4258 string_to_expand: *const c_char,
4259 error: *mut *mut GError,
4260 ) -> *mut c_char;
4261 pub fn g_match_info_fetch(match_info: *const GMatchInfo, match_num: c_int) -> *mut c_char;
4262 pub fn g_match_info_fetch_all(match_info: *const GMatchInfo) -> *mut *mut c_char;
4263 pub fn g_match_info_fetch_named(
4264 match_info: *const GMatchInfo,
4265 name: *const c_char,
4266 ) -> *mut c_char;
4267 pub fn g_match_info_fetch_named_pos(
4268 match_info: *const GMatchInfo,
4269 name: *const c_char,
4270 start_pos: *mut c_int,
4271 end_pos: *mut c_int,
4272 ) -> gboolean;
4273 pub fn g_match_info_fetch_pos(
4274 match_info: *const GMatchInfo,
4275 match_num: c_int,
4276 start_pos: *mut c_int,
4277 end_pos: *mut c_int,
4278 ) -> gboolean;
4279 pub fn g_match_info_free(match_info: *mut GMatchInfo);
4280 pub fn g_match_info_get_match_count(match_info: *const GMatchInfo) -> c_int;
4281 pub fn g_match_info_get_regex(match_info: *const GMatchInfo) -> *mut GRegex;
4282 pub fn g_match_info_get_string(match_info: *const GMatchInfo) -> *const c_char;
4283 pub fn g_match_info_is_partial_match(match_info: *const GMatchInfo) -> gboolean;
4284 pub fn g_match_info_matches(match_info: *const GMatchInfo) -> gboolean;
4285 pub fn g_match_info_next(match_info: *mut GMatchInfo, error: *mut *mut GError) -> gboolean;
4286 pub fn g_match_info_ref(match_info: *mut GMatchInfo) -> *mut GMatchInfo;
4287 pub fn g_match_info_unref(match_info: *mut GMatchInfo);
4288
4289 pub fn g_mem_chunk_alloc(mem_chunk: *mut GMemChunk) -> gpointer;
4293 pub fn g_mem_chunk_alloc0(mem_chunk: *mut GMemChunk) -> gpointer;
4294 pub fn g_mem_chunk_clean(mem_chunk: *mut GMemChunk);
4295 pub fn g_mem_chunk_destroy(mem_chunk: *mut GMemChunk);
4296 pub fn g_mem_chunk_free(mem_chunk: *mut GMemChunk, mem: gpointer);
4297 pub fn g_mem_chunk_print(mem_chunk: *mut GMemChunk);
4298 pub fn g_mem_chunk_reset(mem_chunk: *mut GMemChunk);
4299 pub fn g_mem_chunk_info();
4300 pub fn g_mem_chunk_new(
4301 name: *const c_char,
4302 atom_size: c_int,
4303 area_size: size_t,
4304 type_: c_int,
4305 ) -> *mut GMemChunk;
4306
4307 pub fn g_node_child_index(node: *mut GNode, data: gpointer) -> c_int;
4311 pub fn g_node_child_position(node: *mut GNode, child: *mut GNode) -> c_int;
4312 pub fn g_node_children_foreach(
4313 node: *mut GNode,
4314 flags: GTraverseFlags,
4315 func: GNodeForeachFunc,
4316 data: gpointer,
4317 );
4318 pub fn g_node_copy(node: *mut GNode) -> *mut GNode;
4319 pub fn g_node_copy_deep(node: *mut GNode, copy_func: GCopyFunc, data: gpointer) -> *mut GNode;
4320 pub fn g_node_depth(node: *mut GNode) -> c_uint;
4321 pub fn g_node_destroy(root: *mut GNode);
4322 pub fn g_node_find(
4323 root: *mut GNode,
4324 order: GTraverseType,
4325 flags: GTraverseFlags,
4326 data: gpointer,
4327 ) -> *mut GNode;
4328 pub fn g_node_find_child(node: *mut GNode, flags: GTraverseFlags, data: gpointer)
4329 -> *mut GNode;
4330 pub fn g_node_first_sibling(node: *mut GNode) -> *mut GNode;
4331 pub fn g_node_get_root(node: *mut GNode) -> *mut GNode;
4332 pub fn g_node_insert(parent: *mut GNode, position: c_int, node: *mut GNode) -> *mut GNode;
4333 pub fn g_node_insert_after(
4334 parent: *mut GNode,
4335 sibling: *mut GNode,
4336 node: *mut GNode,
4337 ) -> *mut GNode;
4338 pub fn g_node_insert_before(
4339 parent: *mut GNode,
4340 sibling: *mut GNode,
4341 node: *mut GNode,
4342 ) -> *mut GNode;
4343 pub fn g_node_is_ancestor(node: *mut GNode, descendant: *mut GNode) -> gboolean;
4344 pub fn g_node_last_child(node: *mut GNode) -> *mut GNode;
4345 pub fn g_node_last_sibling(node: *mut GNode) -> *mut GNode;
4346 pub fn g_node_max_height(root: *mut GNode) -> c_uint;
4347 pub fn g_node_n_children(node: *mut GNode) -> c_uint;
4348 pub fn g_node_n_nodes(root: *mut GNode, flags: GTraverseFlags) -> c_uint;
4349 pub fn g_node_nth_child(node: *mut GNode, n: c_uint) -> *mut GNode;
4350 pub fn g_node_prepend(parent: *mut GNode, node: *mut GNode) -> *mut GNode;
4351 pub fn g_node_reverse_children(node: *mut GNode);
4352 pub fn g_node_traverse(
4353 root: *mut GNode,
4354 order: GTraverseType,
4355 flags: GTraverseFlags,
4356 max_depth: c_int,
4357 func: GNodeTraverseFunc,
4358 data: gpointer,
4359 );
4360 pub fn g_node_unlink(node: *mut GNode);
4361 pub fn g_node_new(data: gpointer) -> *mut GNode;
4362 pub fn g_node_pop_allocator();
4363 pub fn g_node_push_allocator(allocator: *mut GAllocator);
4364
4365 pub fn g_once_impl(once: *mut GOnce, func: GThreadFunc, arg: gpointer) -> gpointer;
4369 pub fn g_once_init_enter(location: *mut c_void) -> gboolean;
4370 pub fn g_once_init_enter_impl(location: *mut size_t) -> gboolean;
4371 #[cfg(feature = "v2_80")]
4372 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
4373 pub fn g_once_init_enter_pointer(location: *mut c_void) -> gboolean;
4374 pub fn g_once_init_leave(location: *mut c_void, result: size_t);
4375 #[cfg(feature = "v2_80")]
4376 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
4377 pub fn g_once_init_leave_pointer(location: *mut c_void, result: gpointer);
4378
4379 pub fn g_option_context_add_group(context: *mut GOptionContext, group: *mut GOptionGroup);
4383 pub fn g_option_context_add_main_entries(
4384 context: *mut GOptionContext,
4385 entries: *const GOptionEntry,
4386 translation_domain: *const c_char,
4387 );
4388 pub fn g_option_context_free(context: *mut GOptionContext);
4389 pub fn g_option_context_get_description(context: *mut GOptionContext) -> *const c_char;
4390 pub fn g_option_context_get_help(
4391 context: *mut GOptionContext,
4392 main_help: gboolean,
4393 group: *mut GOptionGroup,
4394 ) -> *mut c_char;
4395 pub fn g_option_context_get_help_enabled(context: *mut GOptionContext) -> gboolean;
4396 pub fn g_option_context_get_ignore_unknown_options(context: *mut GOptionContext) -> gboolean;
4397 pub fn g_option_context_get_main_group(context: *mut GOptionContext) -> *mut GOptionGroup;
4398 pub fn g_option_context_get_strict_posix(context: *mut GOptionContext) -> gboolean;
4399 pub fn g_option_context_get_summary(context: *mut GOptionContext) -> *const c_char;
4400 pub fn g_option_context_parse(
4401 context: *mut GOptionContext,
4402 argc: *mut c_int,
4403 argv: *mut *mut *mut c_char,
4404 error: *mut *mut GError,
4405 ) -> gboolean;
4406 pub fn g_option_context_parse_strv(
4407 context: *mut GOptionContext,
4408 arguments: *mut *mut *mut c_char,
4409 error: *mut *mut GError,
4410 ) -> gboolean;
4411 pub fn g_option_context_set_description(
4412 context: *mut GOptionContext,
4413 description: *const c_char,
4414 );
4415 pub fn g_option_context_set_help_enabled(context: *mut GOptionContext, help_enabled: gboolean);
4416 pub fn g_option_context_set_ignore_unknown_options(
4417 context: *mut GOptionContext,
4418 ignore_unknown: gboolean,
4419 );
4420 pub fn g_option_context_set_main_group(context: *mut GOptionContext, group: *mut GOptionGroup);
4421 pub fn g_option_context_set_strict_posix(context: *mut GOptionContext, strict_posix: gboolean);
4422 pub fn g_option_context_set_summary(context: *mut GOptionContext, summary: *const c_char);
4423 pub fn g_option_context_set_translate_func(
4424 context: *mut GOptionContext,
4425 func: GTranslateFunc,
4426 data: gpointer,
4427 destroy_notify: GDestroyNotify,
4428 );
4429 pub fn g_option_context_set_translation_domain(
4430 context: *mut GOptionContext,
4431 domain: *const c_char,
4432 );
4433 pub fn g_option_context_new(parameter_string: *const c_char) -> *mut GOptionContext;
4434
4435 pub fn g_option_group_get_type() -> GType;
4439 pub fn g_option_group_new(
4440 name: *const c_char,
4441 description: *const c_char,
4442 help_description: *const c_char,
4443 user_data: gpointer,
4444 destroy: GDestroyNotify,
4445 ) -> *mut GOptionGroup;
4446 pub fn g_option_group_add_entries(group: *mut GOptionGroup, entries: *const GOptionEntry);
4447 pub fn g_option_group_free(group: *mut GOptionGroup);
4448 pub fn g_option_group_ref(group: *mut GOptionGroup) -> *mut GOptionGroup;
4449 pub fn g_option_group_set_error_hook(group: *mut GOptionGroup, error_func: GOptionErrorFunc);
4450 pub fn g_option_group_set_parse_hooks(
4451 group: *mut GOptionGroup,
4452 pre_parse_func: GOptionParseFunc,
4453 post_parse_func: GOptionParseFunc,
4454 );
4455 pub fn g_option_group_set_translate_func(
4456 group: *mut GOptionGroup,
4457 func: GTranslateFunc,
4458 data: gpointer,
4459 destroy_notify: GDestroyNotify,
4460 );
4461 pub fn g_option_group_set_translation_domain(group: *mut GOptionGroup, domain: *const c_char);
4462 pub fn g_option_group_unref(group: *mut GOptionGroup);
4463
4464 #[cfg(feature = "v2_76")]
4468 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4469 pub fn g_path_buf_clear(buf: *mut GPathBuf);
4470 #[cfg(feature = "v2_76")]
4471 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4472 pub fn g_path_buf_clear_to_path(buf: *mut GPathBuf) -> *mut c_char;
4473 #[cfg(feature = "v2_76")]
4474 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4475 pub fn g_path_buf_copy(buf: *mut GPathBuf) -> *mut GPathBuf;
4476 #[cfg(feature = "v2_76")]
4477 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4478 pub fn g_path_buf_free(buf: *mut GPathBuf);
4479 #[cfg(feature = "v2_76")]
4480 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4481 pub fn g_path_buf_free_to_path(buf: *mut GPathBuf) -> *mut c_char;
4482 #[cfg(feature = "v2_76")]
4483 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4484 pub fn g_path_buf_init(buf: *mut GPathBuf) -> *mut GPathBuf;
4485 #[cfg(feature = "v2_76")]
4486 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4487 pub fn g_path_buf_init_from_path(buf: *mut GPathBuf, path: *const c_char) -> *mut GPathBuf;
4488 #[cfg(feature = "v2_76")]
4489 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4490 pub fn g_path_buf_pop(buf: *mut GPathBuf) -> gboolean;
4491 #[cfg(feature = "v2_76")]
4492 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4493 pub fn g_path_buf_push(buf: *mut GPathBuf, path: *const c_char) -> *mut GPathBuf;
4494 #[cfg(feature = "v2_76")]
4495 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4496 pub fn g_path_buf_set_extension(buf: *mut GPathBuf, extension: *const c_char) -> gboolean;
4497 #[cfg(feature = "v2_76")]
4498 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4499 pub fn g_path_buf_set_filename(buf: *mut GPathBuf, file_name: *const c_char) -> gboolean;
4500 #[cfg(feature = "v2_76")]
4501 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4502 pub fn g_path_buf_to_path(buf: *mut GPathBuf) -> *mut c_char;
4503 #[cfg(feature = "v2_76")]
4504 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4505 pub fn g_path_buf_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
4506 #[cfg(feature = "v2_76")]
4507 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4508 pub fn g_path_buf_new() -> *mut GPathBuf;
4509 #[cfg(feature = "v2_76")]
4510 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4511 pub fn g_path_buf_new_from_path(path: *const c_char) -> *mut GPathBuf;
4512
4513 pub fn g_pattern_spec_get_type() -> GType;
4517 pub fn g_pattern_spec_new(pattern: *const c_char) -> *mut GPatternSpec;
4518 #[cfg(feature = "v2_70")]
4519 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
4520 pub fn g_pattern_spec_copy(pspec: *mut GPatternSpec) -> *mut GPatternSpec;
4521 pub fn g_pattern_spec_equal(pspec1: *mut GPatternSpec, pspec2: *mut GPatternSpec) -> gboolean;
4522 pub fn g_pattern_spec_free(pspec: *mut GPatternSpec);
4523 #[cfg(feature = "v2_70")]
4524 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
4525 pub fn g_pattern_spec_match(
4526 pspec: *mut GPatternSpec,
4527 string_length: size_t,
4528 string: *const c_char,
4529 string_reversed: *const c_char,
4530 ) -> gboolean;
4531 #[cfg(feature = "v2_70")]
4532 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
4533 pub fn g_pattern_spec_match_string(pspec: *mut GPatternSpec, string: *const c_char)
4534 -> gboolean;
4535
4536 pub fn g_pollfd_get_type() -> GType;
4540
4541 pub fn g_private_get(key: *mut GPrivate) -> gpointer;
4545 pub fn g_private_replace(key: *mut GPrivate, value: gpointer);
4546 pub fn g_private_set(key: *mut GPrivate, value: gpointer);
4547 pub fn g_private_new(notify: GDestroyNotify) -> *mut GPrivate;
4548
4549 pub fn g_ptr_array_get_type() -> GType;
4553 pub fn g_ptr_array_add(array: *mut GPtrArray, data: gpointer);
4554 #[cfg(feature = "v2_62")]
4555 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4556 pub fn g_ptr_array_copy(
4557 array: *mut GPtrArray,
4558 func: GCopyFunc,
4559 user_data: gpointer,
4560 ) -> *mut GPtrArray;
4561 #[cfg(feature = "v2_62")]
4562 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4563 pub fn g_ptr_array_extend(
4564 array_to_extend: *mut GPtrArray,
4565 array: *mut GPtrArray,
4566 func: GCopyFunc,
4567 user_data: gpointer,
4568 );
4569 #[cfg(feature = "v2_62")]
4570 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4571 pub fn g_ptr_array_extend_and_steal(array_to_extend: *mut GPtrArray, array: *mut GPtrArray);
4572 pub fn g_ptr_array_find(
4573 haystack: *mut GPtrArray,
4574 needle: gconstpointer,
4575 index_: *mut c_uint,
4576 ) -> gboolean;
4577 pub fn g_ptr_array_find_with_equal_func(
4578 haystack: *mut GPtrArray,
4579 needle: gconstpointer,
4580 equal_func: GEqualFunc,
4581 index_: *mut c_uint,
4582 ) -> gboolean;
4583 pub fn g_ptr_array_foreach(array: *mut GPtrArray, func: GFunc, user_data: gpointer);
4584 pub fn g_ptr_array_free(array: *mut GPtrArray, free_segment: gboolean) -> *mut gpointer;
4585 pub fn g_ptr_array_insert(array: *mut GPtrArray, index_: c_int, data: gpointer);
4586 #[cfg(feature = "v2_74")]
4587 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
4588 pub fn g_ptr_array_is_null_terminated(array: *mut GPtrArray) -> gboolean;
4589 pub fn g_ptr_array_new() -> *mut GPtrArray;
4590 #[cfg(feature = "v2_76")]
4591 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4592 pub fn g_ptr_array_new_from_array(
4593 data: *mut gpointer,
4594 len: size_t,
4595 copy_func: GCopyFunc,
4596 copy_func_user_data: gpointer,
4597 element_free_func: GDestroyNotify,
4598 ) -> *mut GPtrArray;
4599 #[cfg(feature = "v2_76")]
4600 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4601 pub fn g_ptr_array_new_from_null_terminated_array(
4602 data: *mut gpointer,
4603 copy_func: GCopyFunc,
4604 copy_func_user_data: gpointer,
4605 element_free_func: GDestroyNotify,
4606 ) -> *mut GPtrArray;
4607 pub fn g_ptr_array_new_full(
4608 reserved_size: c_uint,
4609 element_free_func: GDestroyNotify,
4610 ) -> *mut GPtrArray;
4611 #[cfg(feature = "v2_74")]
4612 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
4613 pub fn g_ptr_array_new_null_terminated(
4614 reserved_size: c_uint,
4615 element_free_func: GDestroyNotify,
4616 null_terminated: gboolean,
4617 ) -> *mut GPtrArray;
4618 #[cfg(feature = "v2_76")]
4619 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4620 pub fn g_ptr_array_new_take(
4621 data: *mut gpointer,
4622 len: size_t,
4623 element_free_func: GDestroyNotify,
4624 ) -> *mut GPtrArray;
4625 #[cfg(feature = "v2_76")]
4626 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4627 pub fn g_ptr_array_new_take_null_terminated(
4628 data: *mut gpointer,
4629 element_free_func: GDestroyNotify,
4630 ) -> *mut GPtrArray;
4631 pub fn g_ptr_array_new_with_free_func(element_free_func: GDestroyNotify) -> *mut GPtrArray;
4632 pub fn g_ptr_array_ref(array: *mut GPtrArray) -> *mut GPtrArray;
4633 pub fn g_ptr_array_remove(array: *mut GPtrArray, data: gpointer) -> gboolean;
4634 pub fn g_ptr_array_remove_fast(array: *mut GPtrArray, data: gpointer) -> gboolean;
4635 pub fn g_ptr_array_remove_index(array: *mut GPtrArray, index_: c_uint) -> gpointer;
4636 pub fn g_ptr_array_remove_index_fast(array: *mut GPtrArray, index_: c_uint) -> gpointer;
4637 pub fn g_ptr_array_remove_range(
4638 array: *mut GPtrArray,
4639 index_: c_uint,
4640 length: c_uint,
4641 ) -> *mut GPtrArray;
4642 pub fn g_ptr_array_set_free_func(array: *mut GPtrArray, element_free_func: GDestroyNotify);
4643 pub fn g_ptr_array_set_size(array: *mut GPtrArray, length: c_int);
4644 pub fn g_ptr_array_sized_new(reserved_size: c_uint) -> *mut GPtrArray;
4645 pub fn g_ptr_array_sort(array: *mut GPtrArray, compare_func: GCompareFunc);
4646 #[cfg(feature = "v2_76")]
4647 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4648 pub fn g_ptr_array_sort_values(array: *mut GPtrArray, compare_func: GCompareFunc);
4649 #[cfg(feature = "v2_76")]
4650 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
4651 pub fn g_ptr_array_sort_values_with_data(
4652 array: *mut GPtrArray,
4653 compare_func: GCompareDataFunc,
4654 user_data: gpointer,
4655 );
4656 pub fn g_ptr_array_sort_with_data(
4657 array: *mut GPtrArray,
4658 compare_func: GCompareDataFunc,
4659 user_data: gpointer,
4660 );
4661 #[cfg(feature = "v2_64")]
4662 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
4663 pub fn g_ptr_array_steal(array: *mut GPtrArray, len: *mut size_t) -> *mut gpointer;
4664 #[cfg(feature = "v2_58")]
4665 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
4666 pub fn g_ptr_array_steal_index(array: *mut GPtrArray, index_: c_uint) -> gpointer;
4667 #[cfg(feature = "v2_58")]
4668 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
4669 pub fn g_ptr_array_steal_index_fast(array: *mut GPtrArray, index_: c_uint) -> gpointer;
4670 pub fn g_ptr_array_unref(array: *mut GPtrArray);
4671
4672 pub fn g_queue_clear(queue: *mut GQueue);
4676 #[cfg(feature = "v2_60")]
4677 #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
4678 pub fn g_queue_clear_full(queue: *mut GQueue, free_func: GDestroyNotify);
4679 pub fn g_queue_copy(queue: *mut GQueue) -> *mut GQueue;
4680 pub fn g_queue_delete_link(queue: *mut GQueue, link_: *mut GList);
4681 pub fn g_queue_find(queue: *mut GQueue, data: gconstpointer) -> *mut GList;
4682 pub fn g_queue_find_custom(
4683 queue: *mut GQueue,
4684 data: gconstpointer,
4685 func: GCompareFunc,
4686 ) -> *mut GList;
4687 pub fn g_queue_foreach(queue: *mut GQueue, func: GFunc, user_data: gpointer);
4688 pub fn g_queue_free(queue: *mut GQueue);
4689 pub fn g_queue_free_full(queue: *mut GQueue, free_func: GDestroyNotify);
4690 pub fn g_queue_get_length(queue: *mut GQueue) -> c_uint;
4691 pub fn g_queue_index(queue: *mut GQueue, data: gconstpointer) -> c_int;
4692 pub fn g_queue_init(queue: *mut GQueue);
4693 pub fn g_queue_insert_after(queue: *mut GQueue, sibling: *mut GList, data: gpointer);
4694 #[cfg(feature = "v2_62")]
4695 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4696 pub fn g_queue_insert_after_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList);
4697 pub fn g_queue_insert_before(queue: *mut GQueue, sibling: *mut GList, data: gpointer);
4698 #[cfg(feature = "v2_62")]
4699 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
4700 pub fn g_queue_insert_before_link(queue: *mut GQueue, sibling: *mut GList, link_: *mut GList);
4701 pub fn g_queue_insert_sorted(
4702 queue: *mut GQueue,
4703 data: gpointer,
4704 func: GCompareDataFunc,
4705 user_data: gpointer,
4706 );
4707 pub fn g_queue_is_empty(queue: *mut GQueue) -> gboolean;
4708 pub fn g_queue_link_index(queue: *mut GQueue, link_: *mut GList) -> c_int;
4709 pub fn g_queue_peek_head(queue: *mut GQueue) -> gpointer;
4710 pub fn g_queue_peek_head_link(queue: *mut GQueue) -> *mut GList;
4711 pub fn g_queue_peek_nth(queue: *mut GQueue, n: c_uint) -> gpointer;
4712 pub fn g_queue_peek_nth_link(queue: *mut GQueue, n: c_uint) -> *mut GList;
4713 pub fn g_queue_peek_tail(queue: *mut GQueue) -> gpointer;
4714 pub fn g_queue_peek_tail_link(queue: *mut GQueue) -> *mut GList;
4715 pub fn g_queue_pop_head(queue: *mut GQueue) -> gpointer;
4716 pub fn g_queue_pop_head_link(queue: *mut GQueue) -> *mut GList;
4717 pub fn g_queue_pop_nth(queue: *mut GQueue, n: c_uint) -> gpointer;
4718 pub fn g_queue_pop_nth_link(queue: *mut GQueue, n: c_uint) -> *mut GList;
4719 pub fn g_queue_pop_tail(queue: *mut GQueue) -> gpointer;
4720 pub fn g_queue_pop_tail_link(queue: *mut GQueue) -> *mut GList;
4721 pub fn g_queue_push_head(queue: *mut GQueue, data: gpointer);
4722 pub fn g_queue_push_head_link(queue: *mut GQueue, link_: *mut GList);
4723 pub fn g_queue_push_nth(queue: *mut GQueue, data: gpointer, n: c_int);
4724 pub fn g_queue_push_nth_link(queue: *mut GQueue, n: c_int, link_: *mut GList);
4725 pub fn g_queue_push_tail(queue: *mut GQueue, data: gpointer);
4726 pub fn g_queue_push_tail_link(queue: *mut GQueue, link_: *mut GList);
4727 pub fn g_queue_remove(queue: *mut GQueue, data: gconstpointer) -> gboolean;
4728 pub fn g_queue_remove_all(queue: *mut GQueue, data: gconstpointer) -> c_uint;
4729 pub fn g_queue_reverse(queue: *mut GQueue);
4730 pub fn g_queue_sort(queue: *mut GQueue, compare_func: GCompareDataFunc, user_data: gpointer);
4731 pub fn g_queue_unlink(queue: *mut GQueue, link_: *mut GList);
4732 pub fn g_queue_new() -> *mut GQueue;
4733
4734 pub fn g_rw_lock_clear(rw_lock: *mut GRWLock);
4738 pub fn g_rw_lock_init(rw_lock: *mut GRWLock);
4739 pub fn g_rw_lock_reader_lock(rw_lock: *mut GRWLock);
4740 pub fn g_rw_lock_reader_trylock(rw_lock: *mut GRWLock) -> gboolean;
4741 pub fn g_rw_lock_reader_unlock(rw_lock: *mut GRWLock);
4742 pub fn g_rw_lock_writer_lock(rw_lock: *mut GRWLock);
4743 pub fn g_rw_lock_writer_trylock(rw_lock: *mut GRWLock) -> gboolean;
4744 pub fn g_rw_lock_writer_unlock(rw_lock: *mut GRWLock);
4745
4746 pub fn g_rand_get_type() -> GType;
4750 pub fn g_rand_new() -> *mut GRand;
4751 pub fn g_rand_new_with_seed(seed: u32) -> *mut GRand;
4752 pub fn g_rand_new_with_seed_array(seed: *const u32, seed_length: c_uint) -> *mut GRand;
4753 pub fn g_rand_copy(rand_: *mut GRand) -> *mut GRand;
4754 pub fn g_rand_double(rand_: *mut GRand) -> c_double;
4755 pub fn g_rand_double_range(rand_: *mut GRand, begin: c_double, end: c_double) -> c_double;
4756 pub fn g_rand_free(rand_: *mut GRand);
4757 pub fn g_rand_int(rand_: *mut GRand) -> u32;
4758 pub fn g_rand_int_range(rand_: *mut GRand, begin: i32, end: i32) -> i32;
4759 pub fn g_rand_set_seed(rand_: *mut GRand, seed: u32);
4760 pub fn g_rand_set_seed_array(rand_: *mut GRand, seed: *const u32, seed_length: c_uint);
4761
4762 pub fn g_rec_mutex_clear(rec_mutex: *mut GRecMutex);
4766 pub fn g_rec_mutex_init(rec_mutex: *mut GRecMutex);
4767 pub fn g_rec_mutex_lock(rec_mutex: *mut GRecMutex);
4768 pub fn g_rec_mutex_trylock(rec_mutex: *mut GRecMutex) -> gboolean;
4769 pub fn g_rec_mutex_unlock(rec_mutex: *mut GRecMutex);
4770
4771 pub fn g_regex_get_type() -> GType;
4775 pub fn g_regex_new(
4776 pattern: *const c_char,
4777 compile_options: GRegexCompileFlags,
4778 match_options: GRegexMatchFlags,
4779 error: *mut *mut GError,
4780 ) -> *mut GRegex;
4781 pub fn g_regex_get_capture_count(regex: *const GRegex) -> c_int;
4782 pub fn g_regex_get_compile_flags(regex: *const GRegex) -> GRegexCompileFlags;
4783 pub fn g_regex_get_has_cr_or_lf(regex: *const GRegex) -> gboolean;
4784 pub fn g_regex_get_match_flags(regex: *const GRegex) -> GRegexMatchFlags;
4785 pub fn g_regex_get_max_backref(regex: *const GRegex) -> c_int;
4786 pub fn g_regex_get_max_lookbehind(regex: *const GRegex) -> c_int;
4787 pub fn g_regex_get_pattern(regex: *const GRegex) -> *const c_char;
4788 pub fn g_regex_get_string_number(regex: *const GRegex, name: *const c_char) -> c_int;
4789 pub fn g_regex_match(
4790 regex: *const GRegex,
4791 string: *const c_char,
4792 match_options: GRegexMatchFlags,
4793 match_info: *mut *mut GMatchInfo,
4794 ) -> gboolean;
4795 pub fn g_regex_match_all(
4796 regex: *const GRegex,
4797 string: *const c_char,
4798 match_options: GRegexMatchFlags,
4799 match_info: *mut *mut GMatchInfo,
4800 ) -> gboolean;
4801 pub fn g_regex_match_all_full(
4802 regex: *const GRegex,
4803 string: *const c_char,
4804 string_len: ssize_t,
4805 start_position: c_int,
4806 match_options: GRegexMatchFlags,
4807 match_info: *mut *mut GMatchInfo,
4808 error: *mut *mut GError,
4809 ) -> gboolean;
4810 pub fn g_regex_match_full(
4811 regex: *const GRegex,
4812 string: *const c_char,
4813 string_len: ssize_t,
4814 start_position: c_int,
4815 match_options: GRegexMatchFlags,
4816 match_info: *mut *mut GMatchInfo,
4817 error: *mut *mut GError,
4818 ) -> gboolean;
4819 pub fn g_regex_ref(regex: *mut GRegex) -> *mut GRegex;
4820 pub fn g_regex_replace(
4821 regex: *const GRegex,
4822 string: *const c_char,
4823 string_len: ssize_t,
4824 start_position: c_int,
4825 replacement: *const c_char,
4826 match_options: GRegexMatchFlags,
4827 error: *mut *mut GError,
4828 ) -> *mut c_char;
4829 pub fn g_regex_replace_eval(
4830 regex: *const GRegex,
4831 string: *const c_char,
4832 string_len: ssize_t,
4833 start_position: c_int,
4834 match_options: GRegexMatchFlags,
4835 eval: GRegexEvalCallback,
4836 user_data: gpointer,
4837 error: *mut *mut GError,
4838 ) -> *mut c_char;
4839 pub fn g_regex_replace_literal(
4840 regex: *const GRegex,
4841 string: *const c_char,
4842 string_len: ssize_t,
4843 start_position: c_int,
4844 replacement: *const c_char,
4845 match_options: GRegexMatchFlags,
4846 error: *mut *mut GError,
4847 ) -> *mut c_char;
4848 pub fn g_regex_split(
4849 regex: *const GRegex,
4850 string: *const c_char,
4851 match_options: GRegexMatchFlags,
4852 ) -> *mut *mut c_char;
4853 pub fn g_regex_split_full(
4854 regex: *const GRegex,
4855 string: *const c_char,
4856 string_len: ssize_t,
4857 start_position: c_int,
4858 match_options: GRegexMatchFlags,
4859 max_tokens: c_int,
4860 error: *mut *mut GError,
4861 ) -> *mut *mut c_char;
4862 pub fn g_regex_unref(regex: *mut GRegex);
4863 pub fn g_regex_check_replacement(
4864 replacement: *const c_char,
4865 has_references: *mut gboolean,
4866 error: *mut *mut GError,
4867 ) -> gboolean;
4868 pub fn g_regex_error_quark() -> GQuark;
4869 pub fn g_regex_escape_nul(string: *const c_char, length: c_int) -> *mut c_char;
4870 pub fn g_regex_escape_string(string: *const c_char, length: c_int) -> *mut c_char;
4871 pub fn g_regex_match_simple(
4872 pattern: *const c_char,
4873 string: *const c_char,
4874 compile_options: GRegexCompileFlags,
4875 match_options: GRegexMatchFlags,
4876 ) -> gboolean;
4877 pub fn g_regex_split_simple(
4878 pattern: *const c_char,
4879 string: *const c_char,
4880 compile_options: GRegexCompileFlags,
4881 match_options: GRegexMatchFlags,
4882 ) -> *mut *mut c_char;
4883
4884 pub fn g_relation_count(relation: *mut GRelation, key: gconstpointer, field: c_int) -> c_int;
4888 pub fn g_relation_delete(relation: *mut GRelation, key: gconstpointer, field: c_int) -> c_int;
4889 pub fn g_relation_destroy(relation: *mut GRelation);
4890 pub fn g_relation_exists(relation: *mut GRelation, ...) -> gboolean;
4891 pub fn g_relation_index(
4892 relation: *mut GRelation,
4893 field: c_int,
4894 hash_func: GHashFunc,
4895 key_equal_func: GEqualFunc,
4896 );
4897 pub fn g_relation_insert(relation: *mut GRelation, ...);
4898 pub fn g_relation_print(relation: *mut GRelation);
4899 pub fn g_relation_select(
4900 relation: *mut GRelation,
4901 key: gconstpointer,
4902 field: c_int,
4903 ) -> *mut GTuples;
4904 pub fn g_relation_new(fields: c_int) -> *mut GRelation;
4905
4906 pub fn g_slist_alloc() -> *mut GSList;
4910 pub fn g_slist_append(list: *mut GSList, data: gpointer) -> *mut GSList;
4911 pub fn g_slist_concat(list1: *mut GSList, list2: *mut GSList) -> *mut GSList;
4912 pub fn g_slist_copy(list: *mut GSList) -> *mut GSList;
4913 pub fn g_slist_copy_deep(
4914 list: *mut GSList,
4915 func: GCopyFunc,
4916 user_data: gpointer,
4917 ) -> *mut GSList;
4918 pub fn g_slist_delete_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList;
4919 pub fn g_slist_find(list: *mut GSList, data: gconstpointer) -> *mut GSList;
4920 pub fn g_slist_find_custom(
4921 list: *mut GSList,
4922 data: gconstpointer,
4923 func: GCompareFunc,
4924 ) -> *mut GSList;
4925 pub fn g_slist_foreach(list: *mut GSList, func: GFunc, user_data: gpointer);
4926 pub fn g_slist_free(list: *mut GSList);
4927 pub fn g_slist_free_1(list: *mut GSList);
4928 pub fn g_slist_free_full(list: *mut GSList, free_func: GDestroyNotify);
4929 pub fn g_slist_index(list: *mut GSList, data: gconstpointer) -> c_int;
4930 pub fn g_slist_insert(list: *mut GSList, data: gpointer, position: c_int) -> *mut GSList;
4931 pub fn g_slist_insert_before(
4932 slist: *mut GSList,
4933 sibling: *mut GSList,
4934 data: gpointer,
4935 ) -> *mut GSList;
4936 pub fn g_slist_insert_sorted(
4937 list: *mut GSList,
4938 data: gpointer,
4939 func: GCompareFunc,
4940 ) -> *mut GSList;
4941 pub fn g_slist_insert_sorted_with_data(
4942 list: *mut GSList,
4943 data: gpointer,
4944 func: GCompareDataFunc,
4945 user_data: gpointer,
4946 ) -> *mut GSList;
4947 pub fn g_slist_last(list: *mut GSList) -> *mut GSList;
4948 pub fn g_slist_length(list: *mut GSList) -> c_uint;
4949 pub fn g_slist_nth(list: *mut GSList, n: c_uint) -> *mut GSList;
4950 pub fn g_slist_nth_data(list: *mut GSList, n: c_uint) -> gpointer;
4951 pub fn g_slist_pop_allocator();
4952 pub fn g_slist_position(list: *mut GSList, llink: *mut GSList) -> c_int;
4953 pub fn g_slist_prepend(list: *mut GSList, data: gpointer) -> *mut GSList;
4954 pub fn g_slist_push_allocator(allocator: *mut GAllocator);
4955 pub fn g_slist_remove(list: *mut GSList, data: gconstpointer) -> *mut GSList;
4956 pub fn g_slist_remove_all(list: *mut GSList, data: gconstpointer) -> *mut GSList;
4957 pub fn g_slist_remove_link(list: *mut GSList, link_: *mut GSList) -> *mut GSList;
4958 pub fn g_slist_reverse(list: *mut GSList) -> *mut GSList;
4959 pub fn g_slist_sort(list: *mut GSList, compare_func: GCompareFunc) -> *mut GSList;
4960 pub fn g_slist_sort_with_data(
4961 list: *mut GSList,
4962 compare_func: GCompareDataFunc,
4963 user_data: gpointer,
4964 ) -> *mut GSList;
4965
4966 pub fn g_scanner_cur_line(scanner: *mut GScanner) -> c_uint;
4970 pub fn g_scanner_cur_position(scanner: *mut GScanner) -> c_uint;
4971 pub fn g_scanner_cur_token(scanner: *mut GScanner) -> GTokenType;
4972 pub fn g_scanner_cur_value(scanner: *mut GScanner) -> GTokenValue;
4973 pub fn g_scanner_destroy(scanner: *mut GScanner);
4974 pub fn g_scanner_eof(scanner: *mut GScanner) -> gboolean;
4975 pub fn g_scanner_error(scanner: *mut GScanner, format: *const c_char, ...);
4976 pub fn g_scanner_get_next_token(scanner: *mut GScanner) -> GTokenType;
4977 pub fn g_scanner_input_file(scanner: *mut GScanner, input_fd: c_int);
4978 pub fn g_scanner_input_text(scanner: *mut GScanner, text: *const c_char, text_len: c_uint);
4979 pub fn g_scanner_lookup_symbol(scanner: *mut GScanner, symbol: *const c_char) -> gpointer;
4980 pub fn g_scanner_peek_next_token(scanner: *mut GScanner) -> GTokenType;
4981 pub fn g_scanner_scope_add_symbol(
4982 scanner: *mut GScanner,
4983 scope_id: c_uint,
4984 symbol: *const c_char,
4985 value: gpointer,
4986 );
4987 pub fn g_scanner_scope_foreach_symbol(
4988 scanner: *mut GScanner,
4989 scope_id: c_uint,
4990 func: GHFunc,
4991 user_data: gpointer,
4992 );
4993 pub fn g_scanner_scope_lookup_symbol(
4994 scanner: *mut GScanner,
4995 scope_id: c_uint,
4996 symbol: *const c_char,
4997 ) -> gpointer;
4998 pub fn g_scanner_scope_remove_symbol(
4999 scanner: *mut GScanner,
5000 scope_id: c_uint,
5001 symbol: *const c_char,
5002 );
5003 pub fn g_scanner_set_scope(scanner: *mut GScanner, scope_id: c_uint) -> c_uint;
5004 pub fn g_scanner_sync_file_offset(scanner: *mut GScanner);
5005 pub fn g_scanner_unexp_token(
5006 scanner: *mut GScanner,
5007 expected_token: GTokenType,
5008 identifier_spec: *const c_char,
5009 symbol_spec: *const c_char,
5010 symbol_name: *const c_char,
5011 message: *const c_char,
5012 is_error: c_int,
5013 );
5014 pub fn g_scanner_warn(scanner: *mut GScanner, format: *const c_char, ...);
5015 pub fn g_scanner_new(config_templ: *const GScannerConfig) -> *mut GScanner;
5016
5017 pub fn g_sequence_append(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter;
5021 pub fn g_sequence_foreach(seq: *mut GSequence, func: GFunc, user_data: gpointer);
5022 pub fn g_sequence_free(seq: *mut GSequence);
5023 pub fn g_sequence_get_begin_iter(seq: *mut GSequence) -> *mut GSequenceIter;
5024 pub fn g_sequence_get_end_iter(seq: *mut GSequence) -> *mut GSequenceIter;
5025 pub fn g_sequence_get_iter_at_pos(seq: *mut GSequence, pos: c_int) -> *mut GSequenceIter;
5026 pub fn g_sequence_get_length(seq: *mut GSequence) -> c_int;
5027 pub fn g_sequence_insert_sorted(
5028 seq: *mut GSequence,
5029 data: gpointer,
5030 cmp_func: GCompareDataFunc,
5031 cmp_data: gpointer,
5032 ) -> *mut GSequenceIter;
5033 pub fn g_sequence_insert_sorted_iter(
5034 seq: *mut GSequence,
5035 data: gpointer,
5036 iter_cmp: GSequenceIterCompareFunc,
5037 cmp_data: gpointer,
5038 ) -> *mut GSequenceIter;
5039 pub fn g_sequence_is_empty(seq: *mut GSequence) -> gboolean;
5040 pub fn g_sequence_lookup(
5041 seq: *mut GSequence,
5042 data: gpointer,
5043 cmp_func: GCompareDataFunc,
5044 cmp_data: gpointer,
5045 ) -> *mut GSequenceIter;
5046 pub fn g_sequence_lookup_iter(
5047 seq: *mut GSequence,
5048 data: gpointer,
5049 iter_cmp: GSequenceIterCompareFunc,
5050 cmp_data: gpointer,
5051 ) -> *mut GSequenceIter;
5052 pub fn g_sequence_prepend(seq: *mut GSequence, data: gpointer) -> *mut GSequenceIter;
5053 pub fn g_sequence_search(
5054 seq: *mut GSequence,
5055 data: gpointer,
5056 cmp_func: GCompareDataFunc,
5057 cmp_data: gpointer,
5058 ) -> *mut GSequenceIter;
5059 pub fn g_sequence_search_iter(
5060 seq: *mut GSequence,
5061 data: gpointer,
5062 iter_cmp: GSequenceIterCompareFunc,
5063 cmp_data: gpointer,
5064 ) -> *mut GSequenceIter;
5065 pub fn g_sequence_sort(seq: *mut GSequence, cmp_func: GCompareDataFunc, cmp_data: gpointer);
5066 pub fn g_sequence_sort_iter(
5067 seq: *mut GSequence,
5068 cmp_func: GSequenceIterCompareFunc,
5069 cmp_data: gpointer,
5070 );
5071 pub fn g_sequence_foreach_range(
5072 begin: *mut GSequenceIter,
5073 end: *mut GSequenceIter,
5074 func: GFunc,
5075 user_data: gpointer,
5076 );
5077 pub fn g_sequence_get(iter: *mut GSequenceIter) -> gpointer;
5078 pub fn g_sequence_insert_before(iter: *mut GSequenceIter, data: gpointer)
5079 -> *mut GSequenceIter;
5080 pub fn g_sequence_move(src: *mut GSequenceIter, dest: *mut GSequenceIter);
5081 pub fn g_sequence_move_range(
5082 dest: *mut GSequenceIter,
5083 begin: *mut GSequenceIter,
5084 end: *mut GSequenceIter,
5085 );
5086 pub fn g_sequence_new(data_destroy: GDestroyNotify) -> *mut GSequence;
5087 pub fn g_sequence_range_get_midpoint(
5088 begin: *mut GSequenceIter,
5089 end: *mut GSequenceIter,
5090 ) -> *mut GSequenceIter;
5091 pub fn g_sequence_remove(iter: *mut GSequenceIter);
5092 pub fn g_sequence_remove_range(begin: *mut GSequenceIter, end: *mut GSequenceIter);
5093 pub fn g_sequence_set(iter: *mut GSequenceIter, data: gpointer);
5094 pub fn g_sequence_sort_changed(
5095 iter: *mut GSequenceIter,
5096 cmp_func: GCompareDataFunc,
5097 cmp_data: gpointer,
5098 );
5099 pub fn g_sequence_sort_changed_iter(
5100 iter: *mut GSequenceIter,
5101 iter_cmp: GSequenceIterCompareFunc,
5102 cmp_data: gpointer,
5103 );
5104 pub fn g_sequence_swap(a: *mut GSequenceIter, b: *mut GSequenceIter);
5105
5106 pub fn g_sequence_iter_compare(a: *mut GSequenceIter, b: *mut GSequenceIter) -> c_int;
5110 pub fn g_sequence_iter_get_position(iter: *mut GSequenceIter) -> c_int;
5111 pub fn g_sequence_iter_get_sequence(iter: *mut GSequenceIter) -> *mut GSequence;
5112 pub fn g_sequence_iter_is_begin(iter: *mut GSequenceIter) -> gboolean;
5113 pub fn g_sequence_iter_is_end(iter: *mut GSequenceIter) -> gboolean;
5114 pub fn g_sequence_iter_move(iter: *mut GSequenceIter, delta: c_int) -> *mut GSequenceIter;
5115 pub fn g_sequence_iter_next(iter: *mut GSequenceIter) -> *mut GSequenceIter;
5116 pub fn g_sequence_iter_prev(iter: *mut GSequenceIter) -> *mut GSequenceIter;
5117
5118 pub fn g_source_get_type() -> GType;
5122 pub fn g_source_new(source_funcs: *mut GSourceFuncs, struct_size: c_uint) -> *mut GSource;
5123 pub fn g_source_add_child_source(source: *mut GSource, child_source: *mut GSource);
5124 pub fn g_source_add_poll(source: *mut GSource, fd: *mut GPollFD);
5125 pub fn g_source_add_unix_fd(source: *mut GSource, fd: c_int, events: GIOCondition) -> gpointer;
5126 pub fn g_source_attach(source: *mut GSource, context: *mut GMainContext) -> c_uint;
5127 pub fn g_source_destroy(source: *mut GSource);
5128 #[cfg(feature = "v2_86")]
5129 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
5130 pub fn g_source_dup_context(source: *mut GSource) -> *mut GMainContext;
5131 pub fn g_source_get_can_recurse(source: *mut GSource) -> gboolean;
5132 pub fn g_source_get_context(source: *mut GSource) -> *mut GMainContext;
5133 pub fn g_source_get_current_time(source: *mut GSource, timeval: *mut GTimeVal);
5134 pub fn g_source_get_id(source: *mut GSource) -> c_uint;
5135 pub fn g_source_get_name(source: *mut GSource) -> *const c_char;
5136 pub fn g_source_get_priority(source: *mut GSource) -> c_int;
5137 pub fn g_source_get_ready_time(source: *mut GSource) -> i64;
5138 pub fn g_source_get_time(source: *mut GSource) -> i64;
5139 pub fn g_source_is_destroyed(source: *mut GSource) -> gboolean;
5140 pub fn g_source_modify_unix_fd(source: *mut GSource, tag: gpointer, new_events: GIOCondition);
5141 pub fn g_source_query_unix_fd(source: *mut GSource, tag: gpointer) -> GIOCondition;
5142 pub fn g_source_ref(source: *mut GSource) -> *mut GSource;
5143 pub fn g_source_remove_child_source(source: *mut GSource, child_source: *mut GSource);
5144 pub fn g_source_remove_poll(source: *mut GSource, fd: *mut GPollFD);
5145 pub fn g_source_remove_unix_fd(source: *mut GSource, tag: gpointer);
5146 pub fn g_source_set_callback(
5147 source: *mut GSource,
5148 func: GSourceFunc,
5149 data: gpointer,
5150 notify: GDestroyNotify,
5151 );
5152 pub fn g_source_set_callback_indirect(
5153 source: *mut GSource,
5154 callback_data: gpointer,
5155 callback_funcs: *mut GSourceCallbackFuncs,
5156 );
5157 pub fn g_source_set_can_recurse(source: *mut GSource, can_recurse: gboolean);
5158 #[cfg(feature = "v2_64")]
5159 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
5160 pub fn g_source_set_dispose_function(source: *mut GSource, dispose: GSourceDisposeFunc);
5161 pub fn g_source_set_funcs(source: *mut GSource, funcs: *mut GSourceFuncs);
5162 pub fn g_source_set_name(source: *mut GSource, name: *const c_char);
5163 pub fn g_source_set_priority(source: *mut GSource, priority: c_int);
5164 pub fn g_source_set_ready_time(source: *mut GSource, ready_time: i64);
5165 #[cfg(feature = "v2_70")]
5166 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
5167 pub fn g_source_set_static_name(source: *mut GSource, name: *const c_char);
5168 pub fn g_source_unref(source: *mut GSource);
5169 pub fn g_source_remove(tag: c_uint) -> gboolean;
5170 pub fn g_source_remove_by_funcs_user_data(
5171 funcs: *mut GSourceFuncs,
5172 user_data: gpointer,
5173 ) -> gboolean;
5174 pub fn g_source_remove_by_user_data(user_data: gpointer) -> gboolean;
5175 pub fn g_source_set_name_by_id(tag: c_uint, name: *const c_char);
5176
5177 pub fn g_gstring_get_type() -> GType;
5197 pub fn g_string_new(init: *const c_char) -> *mut GString;
5198 pub fn g_string_new_len(init: *const c_char, len: ssize_t) -> *mut GString;
5199 #[cfg(feature = "v2_78")]
5200 #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
5201 pub fn g_string_new_take(init: *mut c_char) -> *mut GString;
5202 pub fn g_string_sized_new(dfl_size: size_t) -> *mut GString;
5203 pub fn g_string_append(string: *mut GString, val: *const c_char) -> *mut GString;
5204 pub fn g_string_append_c(string: *mut GString, c: c_char) -> *mut GString;
5205 pub fn g_string_append_len(
5206 string: *mut GString,
5207 val: *const c_char,
5208 len: ssize_t,
5209 ) -> *mut GString;
5210 pub fn g_string_append_printf(string: *mut GString, format: *const c_char, ...);
5211 pub fn g_string_append_unichar(string: *mut GString, wc: u32) -> *mut GString;
5212 pub fn g_string_append_uri_escaped(
5213 string: *mut GString,
5214 unescaped: *const c_char,
5215 reserved_chars_allowed: *const c_char,
5216 allow_utf8: gboolean,
5217 ) -> *mut GString;
5218 pub fn g_string_ascii_down(string: *mut GString) -> *mut GString;
5220 pub fn g_string_ascii_up(string: *mut GString) -> *mut GString;
5221 pub fn g_string_assign(string: *mut GString, rval: *const c_char) -> *mut GString;
5222 #[cfg(feature = "v2_86")]
5223 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
5224 pub fn g_string_copy(string: *mut GString) -> *mut GString;
5225 pub fn g_string_down(string: *mut GString) -> *mut GString;
5226 pub fn g_string_equal(v: *const GString, v2: *const GString) -> gboolean;
5227 pub fn g_string_erase(string: *mut GString, pos: ssize_t, len: ssize_t) -> *mut GString;
5228 pub fn g_string_free(string: *mut GString, free_segment: gboolean) -> *mut c_char;
5229 #[cfg(feature = "v2_76")]
5230 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
5231 pub fn g_string_free_and_steal(string: *mut GString) -> *mut c_char;
5232 pub fn g_string_free_to_bytes(string: *mut GString) -> *mut GBytes;
5233 pub fn g_string_hash(str: *const GString) -> c_uint;
5234 pub fn g_string_insert(string: *mut GString, pos: ssize_t, val: *const c_char) -> *mut GString;
5235 pub fn g_string_insert_c(string: *mut GString, pos: ssize_t, c: c_char) -> *mut GString;
5236 pub fn g_string_insert_len(
5237 string: *mut GString,
5238 pos: ssize_t,
5239 val: *const c_char,
5240 len: ssize_t,
5241 ) -> *mut GString;
5242 pub fn g_string_insert_unichar(string: *mut GString, pos: ssize_t, wc: u32) -> *mut GString;
5243 pub fn g_string_overwrite(
5244 string: *mut GString,
5245 pos: size_t,
5246 val: *const c_char,
5247 ) -> *mut GString;
5248 pub fn g_string_overwrite_len(
5249 string: *mut GString,
5250 pos: size_t,
5251 val: *const c_char,
5252 len: ssize_t,
5253 ) -> *mut GString;
5254 pub fn g_string_prepend(string: *mut GString, val: *const c_char) -> *mut GString;
5255 pub fn g_string_prepend_c(string: *mut GString, c: c_char) -> *mut GString;
5256 pub fn g_string_prepend_len(
5257 string: *mut GString,
5258 val: *const c_char,
5259 len: ssize_t,
5260 ) -> *mut GString;
5261 pub fn g_string_prepend_unichar(string: *mut GString, wc: u32) -> *mut GString;
5262 pub fn g_string_printf(string: *mut GString, format: *const c_char, ...);
5263 #[cfg(feature = "v2_68")]
5264 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5265 pub fn g_string_replace(
5266 string: *mut GString,
5267 find: *const c_char,
5268 replace: *const c_char,
5269 limit: c_uint,
5270 ) -> c_uint;
5271 pub fn g_string_set_size(string: *mut GString, len: size_t) -> *mut GString;
5272 pub fn g_string_truncate(string: *mut GString, len: size_t) -> *mut GString;
5273 pub fn g_string_up(string: *mut GString) -> *mut GString;
5274 pub fn g_string_chunk_clear(chunk: *mut GStringChunk);
5280 pub fn g_string_chunk_free(chunk: *mut GStringChunk);
5281 pub fn g_string_chunk_insert(chunk: *mut GStringChunk, string: *const c_char) -> *mut c_char;
5282 pub fn g_string_chunk_insert_const(
5283 chunk: *mut GStringChunk,
5284 string: *const c_char,
5285 ) -> *mut c_char;
5286 pub fn g_string_chunk_insert_len(
5287 chunk: *mut GStringChunk,
5288 string: *const c_char,
5289 len: ssize_t,
5290 ) -> *mut c_char;
5291 pub fn g_string_chunk_new(size: size_t) -> *mut GStringChunk;
5292
5293 #[cfg(feature = "v2_68")]
5297 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5298 pub fn g_strv_builder_get_type() -> GType;
5299 #[cfg(feature = "v2_68")]
5300 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5301 pub fn g_strv_builder_new() -> *mut GStrvBuilder;
5302 #[cfg(feature = "v2_68")]
5303 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5304 pub fn g_strv_builder_add(builder: *mut GStrvBuilder, value: *const c_char);
5305 #[cfg(feature = "v2_68")]
5306 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5307 pub fn g_strv_builder_add_many(builder: *mut GStrvBuilder, ...);
5308 #[cfg(feature = "v2_68")]
5309 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5310 pub fn g_strv_builder_addv(builder: *mut GStrvBuilder, value: *mut *const c_char);
5311 #[cfg(feature = "v2_68")]
5312 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5313 pub fn g_strv_builder_end(builder: *mut GStrvBuilder) -> c_char;
5314 #[cfg(feature = "v2_68")]
5315 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5316 pub fn g_strv_builder_ref(builder: *mut GStrvBuilder) -> *mut GStrvBuilder;
5317 #[cfg(feature = "v2_68")]
5318 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5319 pub fn g_strv_builder_take(builder: *mut GStrvBuilder, value: *mut c_char);
5320 #[cfg(feature = "v2_68")]
5321 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5322 pub fn g_strv_builder_unref(builder: *mut GStrvBuilder);
5323 #[cfg(feature = "v2_82")]
5324 #[cfg_attr(docsrs, doc(cfg(feature = "v2_82")))]
5325 pub fn g_strv_builder_unref_to_strv(builder: *mut GStrvBuilder) -> c_char;
5326
5327 #[cfg(feature = "v2_70")]
5331 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
5332 pub fn g_test_case_free(test_case: *mut GTestCase);
5333
5334 pub fn g_test_log_buffer_free(tbuffer: *mut GTestLogBuffer);
5338 pub fn g_test_log_buffer_push(tbuffer: *mut GTestLogBuffer, n_bytes: c_uint, bytes: *const u8);
5340 pub fn g_test_log_buffer_new() -> *mut GTestLogBuffer;
5341
5342 pub fn g_test_suite_add(suite: *mut GTestSuite, test_case: *mut GTestCase);
5351 pub fn g_test_suite_add_suite(suite: *mut GTestSuite, nestedsuite: *mut GTestSuite);
5352 #[cfg(feature = "v2_70")]
5353 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
5354 pub fn g_test_suite_free(suite: *mut GTestSuite);
5355
5356 pub fn g_thread_get_type() -> GType;
5360 pub fn g_thread_new(name: *const c_char, func: GThreadFunc, data: gpointer) -> *mut GThread;
5361 pub fn g_thread_try_new(
5362 name: *const c_char,
5363 func: GThreadFunc,
5364 data: gpointer,
5365 error: *mut *mut GError,
5366 ) -> *mut GThread;
5367 #[cfg(feature = "v2_84")]
5368 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
5369 pub fn g_thread_get_name(thread: *mut GThread) -> *const c_char;
5370 pub fn g_thread_join(thread: *mut GThread) -> gpointer;
5371 pub fn g_thread_ref(thread: *mut GThread) -> *mut GThread;
5372 pub fn g_thread_set_priority(thread: *mut GThread, priority: GThreadPriority);
5373 pub fn g_thread_unref(thread: *mut GThread);
5374 pub fn g_thread_create(
5375 func: GThreadFunc,
5376 data: gpointer,
5377 joinable: gboolean,
5378 error: *mut *mut GError,
5379 ) -> *mut GThread;
5380 pub fn g_thread_create_full(
5381 func: GThreadFunc,
5382 data: gpointer,
5383 stack_size: c_ulong,
5384 joinable: gboolean,
5385 bound: gboolean,
5386 priority: GThreadPriority,
5387 error: *mut *mut GError,
5388 ) -> *mut GThread;
5389 pub fn g_thread_error_quark() -> GQuark;
5390 pub fn g_thread_exit(retval: gpointer);
5391 pub fn g_thread_foreach(thread_func: GFunc, user_data: gpointer);
5392 pub fn g_thread_get_initialized() -> gboolean;
5393 pub fn g_thread_init(vtable: gpointer);
5394 pub fn g_thread_init_with_errorcheck_mutexes(vtable: gpointer);
5395 pub fn g_thread_self() -> *mut GThread;
5396 pub fn g_thread_yield();
5397
5398 pub fn g_thread_pool_free(pool: *mut GThreadPool, immediate: gboolean, wait_: gboolean);
5402 pub fn g_thread_pool_get_max_threads(pool: *mut GThreadPool) -> c_int;
5403 pub fn g_thread_pool_get_num_threads(pool: *mut GThreadPool) -> c_uint;
5404 pub fn g_thread_pool_move_to_front(pool: *mut GThreadPool, data: gpointer) -> gboolean;
5405 pub fn g_thread_pool_push(
5406 pool: *mut GThreadPool,
5407 data: gpointer,
5408 error: *mut *mut GError,
5409 ) -> gboolean;
5410 pub fn g_thread_pool_set_max_threads(
5411 pool: *mut GThreadPool,
5412 max_threads: c_int,
5413 error: *mut *mut GError,
5414 ) -> gboolean;
5415 pub fn g_thread_pool_set_sort_function(
5416 pool: *mut GThreadPool,
5417 func: GCompareDataFunc,
5418 user_data: gpointer,
5419 );
5420 pub fn g_thread_pool_unprocessed(pool: *mut GThreadPool) -> c_uint;
5421 pub fn g_thread_pool_get_max_idle_time() -> c_uint;
5422 pub fn g_thread_pool_get_max_unused_threads() -> c_int;
5423 pub fn g_thread_pool_get_num_unused_threads() -> c_uint;
5424 pub fn g_thread_pool_new(
5425 func: GFunc,
5426 user_data: gpointer,
5427 max_threads: c_int,
5428 exclusive: gboolean,
5429 error: *mut *mut GError,
5430 ) -> *mut GThreadPool;
5431 #[cfg(feature = "v2_70")]
5432 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
5433 pub fn g_thread_pool_new_full(
5434 func: GFunc,
5435 user_data: gpointer,
5436 item_free_func: GDestroyNotify,
5437 max_threads: c_int,
5438 exclusive: gboolean,
5439 error: *mut *mut GError,
5440 ) -> *mut GThreadPool;
5441 pub fn g_thread_pool_set_max_idle_time(interval: c_uint);
5442 pub fn g_thread_pool_set_max_unused_threads(max_threads: c_int);
5443 pub fn g_thread_pool_stop_unused_threads();
5444
5445 pub fn g_time_val_add(time_: *mut GTimeVal, microseconds: c_long);
5449 pub fn g_time_val_to_iso8601(time_: *mut GTimeVal) -> *mut c_char;
5450 pub fn g_time_val_from_iso8601(iso_date: *const c_char, time_: *mut GTimeVal) -> gboolean;
5451
5452 pub fn g_time_zone_get_type() -> GType;
5456 pub fn g_time_zone_new(identifier: *const c_char) -> *mut GTimeZone;
5457 #[cfg(feature = "v2_68")]
5458 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5459 pub fn g_time_zone_new_identifier(identifier: *const c_char) -> *mut GTimeZone;
5460 pub fn g_time_zone_new_local() -> *mut GTimeZone;
5461 #[cfg(feature = "v2_58")]
5462 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
5463 pub fn g_time_zone_new_offset(seconds: i32) -> *mut GTimeZone;
5464 pub fn g_time_zone_new_utc() -> *mut GTimeZone;
5465 pub fn g_time_zone_adjust_time(tz: *mut GTimeZone, type_: GTimeType, time_: *mut i64) -> c_int;
5466 pub fn g_time_zone_find_interval(tz: *mut GTimeZone, type_: GTimeType, time_: i64) -> c_int;
5467 pub fn g_time_zone_get_abbreviation(tz: *mut GTimeZone, interval: c_int) -> *const c_char;
5468 #[cfg(feature = "v2_58")]
5469 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
5470 pub fn g_time_zone_get_identifier(tz: *mut GTimeZone) -> *const c_char;
5471 pub fn g_time_zone_get_offset(tz: *mut GTimeZone, interval: c_int) -> i32;
5472 pub fn g_time_zone_is_dst(tz: *mut GTimeZone, interval: c_int) -> gboolean;
5473 pub fn g_time_zone_ref(tz: *mut GTimeZone) -> *mut GTimeZone;
5474 pub fn g_time_zone_unref(tz: *mut GTimeZone);
5475
5476 pub fn g_timer_continue(timer: *mut GTimer);
5480 pub fn g_timer_destroy(timer: *mut GTimer);
5481 pub fn g_timer_elapsed(timer: *mut GTimer, microseconds: *mut c_ulong) -> c_double;
5482 #[cfg(feature = "v2_62")]
5483 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
5484 pub fn g_timer_is_active(timer: *mut GTimer) -> gboolean;
5485 pub fn g_timer_reset(timer: *mut GTimer);
5486 pub fn g_timer_start(timer: *mut GTimer);
5487 pub fn g_timer_stop(timer: *mut GTimer);
5488 pub fn g_timer_new() -> *mut GTimer;
5489
5490 pub fn g_trash_stack_height(stack_p: *mut *mut GTrashStack) -> c_uint;
5494 pub fn g_trash_stack_peek(stack_p: *mut *mut GTrashStack) -> gpointer;
5495 pub fn g_trash_stack_pop(stack_p: *mut *mut GTrashStack) -> gpointer;
5496 pub fn g_trash_stack_push(stack_p: *mut *mut GTrashStack, data_p: gpointer);
5497
5498 pub fn g_tree_get_type() -> GType;
5502 pub fn g_tree_new(key_compare_func: GCompareFunc) -> *mut GTree;
5503 pub fn g_tree_new_full(
5504 key_compare_func: GCompareDataFunc,
5505 key_compare_data: gpointer,
5506 key_destroy_func: GDestroyNotify,
5507 value_destroy_func: GDestroyNotify,
5508 ) -> *mut GTree;
5509 pub fn g_tree_new_with_data(
5510 key_compare_func: GCompareDataFunc,
5511 key_compare_data: gpointer,
5512 ) -> *mut GTree;
5513 pub fn g_tree_destroy(tree: *mut GTree);
5514 pub fn g_tree_foreach(tree: *mut GTree, func: GTraverseFunc, user_data: gpointer);
5515 #[cfg(feature = "v2_68")]
5516 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5517 pub fn g_tree_foreach_node(tree: *mut GTree, func: GTraverseNodeFunc, user_data: gpointer);
5518 pub fn g_tree_height(tree: *mut GTree) -> c_int;
5519 pub fn g_tree_insert(tree: *mut GTree, key: gpointer, value: gpointer);
5520 #[cfg(feature = "v2_68")]
5521 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5522 pub fn g_tree_insert_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode;
5523 pub fn g_tree_lookup(tree: *mut GTree, key: gconstpointer) -> gpointer;
5524 pub fn g_tree_lookup_extended(
5525 tree: *mut GTree,
5526 lookup_key: gconstpointer,
5527 orig_key: *mut gpointer,
5528 value: *mut gpointer,
5529 ) -> gboolean;
5530 #[cfg(feature = "v2_68")]
5531 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5532 pub fn g_tree_lookup_node(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode;
5533 #[cfg(feature = "v2_68")]
5534 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5535 pub fn g_tree_lower_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode;
5536 pub fn g_tree_nnodes(tree: *mut GTree) -> c_int;
5537 #[cfg(feature = "v2_68")]
5538 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5539 pub fn g_tree_node_first(tree: *mut GTree) -> *mut GTreeNode;
5540 #[cfg(feature = "v2_68")]
5541 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5542 pub fn g_tree_node_last(tree: *mut GTree) -> *mut GTreeNode;
5543 pub fn g_tree_ref(tree: *mut GTree) -> *mut GTree;
5544 pub fn g_tree_remove(tree: *mut GTree, key: gconstpointer) -> gboolean;
5545 #[cfg(feature = "v2_70")]
5546 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
5547 pub fn g_tree_remove_all(tree: *mut GTree);
5548 pub fn g_tree_replace(tree: *mut GTree, key: gpointer, value: gpointer);
5549 #[cfg(feature = "v2_68")]
5550 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5551 pub fn g_tree_replace_node(tree: *mut GTree, key: gpointer, value: gpointer) -> *mut GTreeNode;
5552 pub fn g_tree_search(
5553 tree: *mut GTree,
5554 search_func: GCompareFunc,
5555 user_data: gconstpointer,
5556 ) -> gpointer;
5557 #[cfg(feature = "v2_68")]
5558 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5559 pub fn g_tree_search_node(
5560 tree: *mut GTree,
5561 search_func: GCompareFunc,
5562 user_data: gconstpointer,
5563 ) -> *mut GTreeNode;
5564 pub fn g_tree_steal(tree: *mut GTree, key: gconstpointer) -> gboolean;
5565 pub fn g_tree_traverse(
5566 tree: *mut GTree,
5567 traverse_func: GTraverseFunc,
5568 traverse_type: GTraverseType,
5569 user_data: gpointer,
5570 );
5571 pub fn g_tree_unref(tree: *mut GTree);
5572 #[cfg(feature = "v2_68")]
5573 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5574 pub fn g_tree_upper_bound(tree: *mut GTree, key: gconstpointer) -> *mut GTreeNode;
5575
5576 #[cfg(feature = "v2_68")]
5580 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5581 pub fn g_tree_node_key(node: *mut GTreeNode) -> gpointer;
5582 #[cfg(feature = "v2_68")]
5583 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5584 pub fn g_tree_node_next(node: *mut GTreeNode) -> *mut GTreeNode;
5585 #[cfg(feature = "v2_68")]
5586 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5587 pub fn g_tree_node_previous(node: *mut GTreeNode) -> *mut GTreeNode;
5588 #[cfg(feature = "v2_68")]
5589 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
5590 pub fn g_tree_node_value(node: *mut GTreeNode) -> gpointer;
5591
5592 pub fn g_tuples_destroy(tuples: *mut GTuples);
5596 pub fn g_tuples_index(tuples: *mut GTuples, index_: c_int, field: c_int) -> gpointer;
5597
5598 #[cfg(feature = "v2_66")]
5602 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5603 pub fn g_uri_get_type() -> GType;
5604 #[cfg(feature = "v2_66")]
5605 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5606 pub fn g_uri_get_auth_params(uri: *mut GUri) -> *const c_char;
5607 #[cfg(feature = "v2_66")]
5608 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5609 pub fn g_uri_get_flags(uri: *mut GUri) -> GUriFlags;
5610 #[cfg(feature = "v2_66")]
5611 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5612 pub fn g_uri_get_fragment(uri: *mut GUri) -> *const c_char;
5613 #[cfg(feature = "v2_66")]
5614 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5615 pub fn g_uri_get_host(uri: *mut GUri) -> *const c_char;
5616 #[cfg(feature = "v2_66")]
5617 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5618 pub fn g_uri_get_password(uri: *mut GUri) -> *const c_char;
5619 #[cfg(feature = "v2_66")]
5620 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5621 pub fn g_uri_get_path(uri: *mut GUri) -> *const c_char;
5622 #[cfg(feature = "v2_66")]
5623 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5624 pub fn g_uri_get_port(uri: *mut GUri) -> c_int;
5625 #[cfg(feature = "v2_66")]
5626 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5627 pub fn g_uri_get_query(uri: *mut GUri) -> *const c_char;
5628 #[cfg(feature = "v2_66")]
5629 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5630 pub fn g_uri_get_scheme(uri: *mut GUri) -> *const c_char;
5631 #[cfg(feature = "v2_66")]
5632 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5633 pub fn g_uri_get_user(uri: *mut GUri) -> *const c_char;
5634 #[cfg(feature = "v2_66")]
5635 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5636 pub fn g_uri_get_userinfo(uri: *mut GUri) -> *const c_char;
5637 #[cfg(feature = "v2_66")]
5638 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5639 pub fn g_uri_parse_relative(
5640 base_uri: *mut GUri,
5641 uri_ref: *const c_char,
5642 flags: GUriFlags,
5643 error: *mut *mut GError,
5644 ) -> *mut GUri;
5645 #[cfg(feature = "v2_66")]
5646 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5647 pub fn g_uri_ref(uri: *mut GUri) -> *mut GUri;
5648 #[cfg(feature = "v2_66")]
5649 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5650 pub fn g_uri_to_string(uri: *mut GUri) -> *mut c_char;
5651 #[cfg(feature = "v2_66")]
5652 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5653 pub fn g_uri_to_string_partial(uri: *mut GUri, flags: GUriHideFlags) -> *mut c_char;
5654 #[cfg(feature = "v2_66")]
5655 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5656 pub fn g_uri_unref(uri: *mut GUri);
5657 #[cfg(feature = "v2_66")]
5658 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5659 pub fn g_uri_build(
5660 flags: GUriFlags,
5661 scheme: *const c_char,
5662 userinfo: *const c_char,
5663 host: *const c_char,
5664 port: c_int,
5665 path: *const c_char,
5666 query: *const c_char,
5667 fragment: *const c_char,
5668 ) -> *mut GUri;
5669 #[cfg(feature = "v2_66")]
5670 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5671 pub fn g_uri_build_with_user(
5672 flags: GUriFlags,
5673 scheme: *const c_char,
5674 user: *const c_char,
5675 password: *const c_char,
5676 auth_params: *const c_char,
5677 host: *const c_char,
5678 port: c_int,
5679 path: *const c_char,
5680 query: *const c_char,
5681 fragment: *const c_char,
5682 ) -> *mut GUri;
5683 #[cfg(feature = "v2_66")]
5684 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5685 pub fn g_uri_error_quark() -> GQuark;
5686 #[cfg(feature = "v2_66")]
5687 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5688 pub fn g_uri_escape_bytes(
5689 unescaped: *const u8,
5690 length: size_t,
5691 reserved_chars_allowed: *const c_char,
5692 ) -> *mut c_char;
5693 pub fn g_uri_escape_string(
5694 unescaped: *const c_char,
5695 reserved_chars_allowed: *const c_char,
5696 allow_utf8: gboolean,
5697 ) -> *mut c_char;
5698 #[cfg(feature = "v2_66")]
5699 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5700 pub fn g_uri_is_valid(
5701 uri_string: *const c_char,
5702 flags: GUriFlags,
5703 error: *mut *mut GError,
5704 ) -> gboolean;
5705 #[cfg(feature = "v2_66")]
5706 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5707 pub fn g_uri_join(
5708 flags: GUriFlags,
5709 scheme: *const c_char,
5710 userinfo: *const c_char,
5711 host: *const c_char,
5712 port: c_int,
5713 path: *const c_char,
5714 query: *const c_char,
5715 fragment: *const c_char,
5716 ) -> *mut c_char;
5717 #[cfg(feature = "v2_66")]
5718 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5719 pub fn g_uri_join_with_user(
5720 flags: GUriFlags,
5721 scheme: *const c_char,
5722 user: *const c_char,
5723 password: *const c_char,
5724 auth_params: *const c_char,
5725 host: *const c_char,
5726 port: c_int,
5727 path: *const c_char,
5728 query: *const c_char,
5729 fragment: *const c_char,
5730 ) -> *mut c_char;
5731 pub fn g_uri_list_extract_uris(uri_list: *const c_char) -> *mut *mut c_char;
5732 #[cfg(feature = "v2_66")]
5733 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5734 pub fn g_uri_parse(
5735 uri_string: *const c_char,
5736 flags: GUriFlags,
5737 error: *mut *mut GError,
5738 ) -> *mut GUri;
5739 #[cfg(feature = "v2_66")]
5740 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5741 pub fn g_uri_parse_params(
5742 params: *const c_char,
5743 length: ssize_t,
5744 separators: *const c_char,
5745 flags: GUriParamsFlags,
5746 error: *mut *mut GError,
5747 ) -> *mut GHashTable;
5748 pub fn g_uri_parse_scheme(uri: *const c_char) -> *mut c_char;
5749 #[cfg(feature = "v2_66")]
5750 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5751 pub fn g_uri_peek_scheme(uri: *const c_char) -> *const c_char;
5752 #[cfg(feature = "v2_66")]
5753 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5754 pub fn g_uri_resolve_relative(
5755 base_uri_string: *const c_char,
5756 uri_ref: *const c_char,
5757 flags: GUriFlags,
5758 error: *mut *mut GError,
5759 ) -> *mut c_char;
5760 #[cfg(feature = "v2_66")]
5761 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5762 pub fn g_uri_split(
5763 uri_ref: *const c_char,
5764 flags: GUriFlags,
5765 scheme: *mut *mut c_char,
5766 userinfo: *mut *mut c_char,
5767 host: *mut *mut c_char,
5768 port: *mut c_int,
5769 path: *mut *mut c_char,
5770 query: *mut *mut c_char,
5771 fragment: *mut *mut c_char,
5772 error: *mut *mut GError,
5773 ) -> gboolean;
5774 #[cfg(feature = "v2_66")]
5775 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5776 pub fn g_uri_split_network(
5777 uri_string: *const c_char,
5778 flags: GUriFlags,
5779 scheme: *mut *mut c_char,
5780 host: *mut *mut c_char,
5781 port: *mut c_int,
5782 error: *mut *mut GError,
5783 ) -> gboolean;
5784 #[cfg(feature = "v2_66")]
5785 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5786 pub fn g_uri_split_with_user(
5787 uri_ref: *const c_char,
5788 flags: GUriFlags,
5789 scheme: *mut *mut c_char,
5790 user: *mut *mut c_char,
5791 password: *mut *mut c_char,
5792 auth_params: *mut *mut c_char,
5793 host: *mut *mut c_char,
5794 port: *mut c_int,
5795 path: *mut *mut c_char,
5796 query: *mut *mut c_char,
5797 fragment: *mut *mut c_char,
5798 error: *mut *mut GError,
5799 ) -> gboolean;
5800 #[cfg(feature = "v2_66")]
5801 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5802 pub fn g_uri_unescape_bytes(
5803 escaped_string: *const c_char,
5804 length: ssize_t,
5805 illegal_characters: *const c_char,
5806 error: *mut *mut GError,
5807 ) -> *mut GBytes;
5808 pub fn g_uri_unescape_segment(
5809 escaped_string: *const c_char,
5810 escaped_string_end: *const c_char,
5811 illegal_characters: *const c_char,
5812 ) -> *mut c_char;
5813 pub fn g_uri_unescape_string(
5814 escaped_string: *const c_char,
5815 illegal_characters: *const c_char,
5816 ) -> *mut c_char;
5817
5818 #[cfg(feature = "v2_66")]
5822 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5823 pub fn g_uri_params_iter_init(
5824 iter: *mut GUriParamsIter,
5825 params: *const c_char,
5826 length: ssize_t,
5827 separators: *const c_char,
5828 flags: GUriParamsFlags,
5829 );
5830 #[cfg(feature = "v2_66")]
5831 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
5832 pub fn g_uri_params_iter_next(
5833 iter: *mut GUriParamsIter,
5834 attribute: *mut *mut c_char,
5835 value: *mut *mut c_char,
5836 error: *mut *mut GError,
5837 ) -> gboolean;
5838
5839 pub fn g_variant_new(format_string: *const c_char, ...) -> *mut GVariant;
5843 pub fn g_variant_new_array(
5844 child_type: *const GVariantType,
5845 children: *const *mut GVariant,
5846 n_children: size_t,
5847 ) -> *mut GVariant;
5848 pub fn g_variant_new_boolean(value: gboolean) -> *mut GVariant;
5849 pub fn g_variant_new_byte(value: u8) -> *mut GVariant;
5850 pub fn g_variant_new_bytestring(string: *const u8) -> *mut GVariant;
5851 pub fn g_variant_new_bytestring_array(
5852 strv: *const *const c_char,
5853 length: ssize_t,
5854 ) -> *mut GVariant;
5855 pub fn g_variant_new_dict_entry(key: *mut GVariant, value: *mut GVariant) -> *mut GVariant;
5856 pub fn g_variant_new_double(value: c_double) -> *mut GVariant;
5857 pub fn g_variant_new_fixed_array(
5858 element_type: *const GVariantType,
5859 elements: gconstpointer,
5860 n_elements: size_t,
5861 element_size: size_t,
5862 ) -> *mut GVariant;
5863 pub fn g_variant_new_from_bytes(
5864 type_: *const GVariantType,
5865 bytes: *mut GBytes,
5866 trusted: gboolean,
5867 ) -> *mut GVariant;
5868 pub fn g_variant_new_from_data(
5869 type_: *const GVariantType,
5870 data: gconstpointer,
5871 size: size_t,
5872 trusted: gboolean,
5873 notify: GDestroyNotify,
5874 user_data: gpointer,
5875 ) -> *mut GVariant;
5876 pub fn g_variant_new_handle(value: i32) -> *mut GVariant;
5877 pub fn g_variant_new_int16(value: i16) -> *mut GVariant;
5878 pub fn g_variant_new_int32(value: i32) -> *mut GVariant;
5879 pub fn g_variant_new_int64(value: i64) -> *mut GVariant;
5880 pub fn g_variant_new_maybe(
5881 child_type: *const GVariantType,
5882 child: *mut GVariant,
5883 ) -> *mut GVariant;
5884 pub fn g_variant_new_object_path(object_path: *const c_char) -> *mut GVariant;
5885 pub fn g_variant_new_objv(strv: *const *const c_char, length: ssize_t) -> *mut GVariant;
5886 pub fn g_variant_new_parsed(format: *const c_char, ...) -> *mut GVariant;
5887 pub fn g_variant_new_printf(format_string: *const c_char, ...) -> *mut GVariant;
5889 pub fn g_variant_new_signature(signature: *const c_char) -> *mut GVariant;
5890 pub fn g_variant_new_string(string: *const c_char) -> *mut GVariant;
5891 pub fn g_variant_new_strv(strv: *const *const c_char, length: ssize_t) -> *mut GVariant;
5892 pub fn g_variant_new_take_string(string: *mut c_char) -> *mut GVariant;
5893 pub fn g_variant_new_tuple(children: *const *mut GVariant, n_children: size_t)
5894 -> *mut GVariant;
5895 pub fn g_variant_new_uint16(value: u16) -> *mut GVariant;
5896 pub fn g_variant_new_uint32(value: u32) -> *mut GVariant;
5897 pub fn g_variant_new_uint64(value: u64) -> *mut GVariant;
5898 pub fn g_variant_new_variant(value: *mut GVariant) -> *mut GVariant;
5900 pub fn g_variant_byteswap(value: *mut GVariant) -> *mut GVariant;
5901 pub fn g_variant_check_format_string(
5902 value: *mut GVariant,
5903 format_string: *const c_char,
5904 copy_only: gboolean,
5905 ) -> gboolean;
5906 pub fn g_variant_classify(value: *mut GVariant) -> GVariantClass;
5907 pub fn g_variant_compare(one: gconstpointer, two: gconstpointer) -> c_int;
5908 pub fn g_variant_dup_bytestring(value: *mut GVariant, length: *mut size_t) -> *mut u8;
5909 pub fn g_variant_dup_bytestring_array(
5910 value: *mut GVariant,
5911 length: *mut size_t,
5912 ) -> *mut *mut c_char;
5913 pub fn g_variant_dup_objv(value: *mut GVariant, length: *mut size_t) -> *mut *mut c_char;
5914 pub fn g_variant_dup_string(value: *mut GVariant, length: *mut size_t) -> *mut c_char;
5915 pub fn g_variant_dup_strv(value: *mut GVariant, length: *mut size_t) -> *mut *mut c_char;
5916 pub fn g_variant_equal(one: gconstpointer, two: gconstpointer) -> gboolean;
5917 pub fn g_variant_get(value: *mut GVariant, format_string: *const c_char, ...);
5918 pub fn g_variant_get_boolean(value: *mut GVariant) -> gboolean;
5919 pub fn g_variant_get_byte(value: *mut GVariant) -> u8;
5920 pub fn g_variant_get_bytestring(value: *mut GVariant) -> *const u8;
5921 pub fn g_variant_get_bytestring_array(
5922 value: *mut GVariant,
5923 length: *mut size_t,
5924 ) -> *mut *const c_char;
5925 pub fn g_variant_get_child(
5926 value: *mut GVariant,
5927 index_: size_t,
5928 format_string: *const c_char,
5929 ...
5930 );
5931 pub fn g_variant_get_child_value(value: *mut GVariant, index_: size_t) -> *mut GVariant;
5932 pub fn g_variant_get_data(value: *mut GVariant) -> gconstpointer;
5933 pub fn g_variant_get_data_as_bytes(value: *mut GVariant) -> *mut GBytes;
5934 pub fn g_variant_get_double(value: *mut GVariant) -> c_double;
5935 pub fn g_variant_get_fixed_array(
5936 value: *mut GVariant,
5937 n_elements: *mut size_t,
5938 element_size: size_t,
5939 ) -> gconstpointer;
5940 pub fn g_variant_get_handle(value: *mut GVariant) -> i32;
5941 pub fn g_variant_get_int16(value: *mut GVariant) -> i16;
5942 pub fn g_variant_get_int32(value: *mut GVariant) -> i32;
5943 pub fn g_variant_get_int64(value: *mut GVariant) -> i64;
5944 pub fn g_variant_get_maybe(value: *mut GVariant) -> *mut GVariant;
5945 pub fn g_variant_get_normal_form(value: *mut GVariant) -> *mut GVariant;
5946 pub fn g_variant_get_objv(value: *mut GVariant, length: *mut size_t) -> *mut *const c_char;
5947 pub fn g_variant_get_size(value: *mut GVariant) -> size_t;
5948 pub fn g_variant_get_string(value: *mut GVariant, length: *mut size_t) -> *const c_char;
5949 pub fn g_variant_get_strv(value: *mut GVariant, length: *mut size_t) -> *mut *const c_char;
5950 pub fn g_variant_get_type(value: *mut GVariant) -> *const GVariantType;
5951 pub fn g_variant_get_type_string(value: *mut GVariant) -> *const c_char;
5952 pub fn g_variant_get_uint16(value: *mut GVariant) -> u16;
5953 pub fn g_variant_get_uint32(value: *mut GVariant) -> u32;
5954 pub fn g_variant_get_uint64(value: *mut GVariant) -> u64;
5955 pub fn g_variant_get_variant(value: *mut GVariant) -> *mut GVariant;
5957 pub fn g_variant_hash(value: gconstpointer) -> c_uint;
5958 pub fn g_variant_is_container(value: *mut GVariant) -> gboolean;
5959 pub fn g_variant_is_floating(value: *mut GVariant) -> gboolean;
5960 pub fn g_variant_is_normal_form(value: *mut GVariant) -> gboolean;
5961 pub fn g_variant_is_of_type(value: *mut GVariant, type_: *const GVariantType) -> gboolean;
5962 pub fn g_variant_iter_new(value: *mut GVariant) -> *mut GVariantIter;
5963 pub fn g_variant_lookup(
5964 dictionary: *mut GVariant,
5965 key: *const c_char,
5966 format_string: *const c_char,
5967 ...
5968 ) -> gboolean;
5969 pub fn g_variant_lookup_value(
5970 dictionary: *mut GVariant,
5971 key: *const c_char,
5972 expected_type: *const GVariantType,
5973 ) -> *mut GVariant;
5974 pub fn g_variant_n_children(value: *mut GVariant) -> size_t;
5975 pub fn g_variant_print(value: *mut GVariant, type_annotate: gboolean) -> *mut c_char;
5976 pub fn g_variant_print_string(
5977 value: *mut GVariant,
5978 string: *mut GString,
5979 type_annotate: gboolean,
5980 ) -> *mut GString;
5981 pub fn g_variant_ref(value: *mut GVariant) -> *mut GVariant;
5982 pub fn g_variant_ref_sink(value: *mut GVariant) -> *mut GVariant;
5983 pub fn g_variant_store(value: *mut GVariant, data: gpointer);
5984 pub fn g_variant_take_ref(value: *mut GVariant) -> *mut GVariant;
5985 pub fn g_variant_unref(value: *mut GVariant);
5986 pub fn g_variant_is_object_path(string: *const c_char) -> gboolean;
5987 pub fn g_variant_is_signature(string: *const c_char) -> gboolean;
5988 pub fn g_variant_parse(
5989 type_: *const GVariantType,
5990 text: *const c_char,
5991 limit: *const c_char,
5992 endptr: *mut *const c_char,
5993 error: *mut *mut GError,
5994 ) -> *mut GVariant;
5995 pub fn g_variant_parse_error_print_context(
5996 error: *mut GError,
5997 source_str: *const c_char,
5998 ) -> *mut c_char;
5999 pub fn g_variant_parse_error_quark() -> GQuark;
6000 pub fn g_variant_parser_get_error_quark() -> GQuark;
6001
6002 pub fn g_variant_builder_get_type() -> GType;
6006 pub fn g_variant_builder_new(type_: *const GVariantType) -> *mut GVariantBuilder;
6007 pub fn g_variant_builder_add(builder: *mut GVariantBuilder, format_string: *const c_char, ...);
6008 pub fn g_variant_builder_add_parsed(builder: *mut GVariantBuilder, format: *const c_char, ...);
6009 pub fn g_variant_builder_add_value(builder: *mut GVariantBuilder, value: *mut GVariant);
6010 pub fn g_variant_builder_clear(builder: *mut GVariantBuilder);
6011 pub fn g_variant_builder_close(builder: *mut GVariantBuilder);
6012 pub fn g_variant_builder_end(builder: *mut GVariantBuilder) -> *mut GVariant;
6013 pub fn g_variant_builder_init(builder: *mut GVariantBuilder, type_: *const GVariantType);
6014 #[cfg(feature = "v2_84")]
6015 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
6016 pub fn g_variant_builder_init_static(builder: *mut GVariantBuilder, type_: *const GVariantType);
6017 pub fn g_variant_builder_open(builder: *mut GVariantBuilder, type_: *const GVariantType);
6018 pub fn g_variant_builder_ref(builder: *mut GVariantBuilder) -> *mut GVariantBuilder;
6019 pub fn g_variant_builder_unref(builder: *mut GVariantBuilder);
6020
6021 pub fn g_variant_dict_get_type() -> GType;
6025 pub fn g_variant_dict_new(from_asv: *mut GVariant) -> *mut GVariantDict;
6026 pub fn g_variant_dict_clear(dict: *mut GVariantDict);
6027 pub fn g_variant_dict_contains(dict: *mut GVariantDict, key: *const c_char) -> gboolean;
6028 pub fn g_variant_dict_end(dict: *mut GVariantDict) -> *mut GVariant;
6029 pub fn g_variant_dict_init(dict: *mut GVariantDict, from_asv: *mut GVariant);
6030 pub fn g_variant_dict_insert(
6031 dict: *mut GVariantDict,
6032 key: *const c_char,
6033 format_string: *const c_char,
6034 ...
6035 );
6036 pub fn g_variant_dict_insert_value(
6037 dict: *mut GVariantDict,
6038 key: *const c_char,
6039 value: *mut GVariant,
6040 );
6041 pub fn g_variant_dict_lookup(
6042 dict: *mut GVariantDict,
6043 key: *const c_char,
6044 format_string: *const c_char,
6045 ...
6046 ) -> gboolean;
6047 pub fn g_variant_dict_lookup_value(
6048 dict: *mut GVariantDict,
6049 key: *const c_char,
6050 expected_type: *const GVariantType,
6051 ) -> *mut GVariant;
6052 pub fn g_variant_dict_ref(dict: *mut GVariantDict) -> *mut GVariantDict;
6053 pub fn g_variant_dict_remove(dict: *mut GVariantDict, key: *const c_char) -> gboolean;
6054 pub fn g_variant_dict_unref(dict: *mut GVariantDict);
6055
6056 pub fn g_variant_iter_copy(iter: *mut GVariantIter) -> *mut GVariantIter;
6060 pub fn g_variant_iter_free(iter: *mut GVariantIter);
6061 pub fn g_variant_iter_init(iter: *mut GVariantIter, value: *mut GVariant) -> size_t;
6062 pub fn g_variant_iter_loop(
6063 iter: *mut GVariantIter,
6064 format_string: *const c_char,
6065 ...
6066 ) -> gboolean;
6067 pub fn g_variant_iter_n_children(iter: *mut GVariantIter) -> size_t;
6068 pub fn g_variant_iter_next(
6069 iter: *mut GVariantIter,
6070 format_string: *const c_char,
6071 ...
6072 ) -> gboolean;
6073 pub fn g_variant_iter_next_value(iter: *mut GVariantIter) -> *mut GVariant;
6074
6075 pub fn g_variant_type_get_gtype() -> GType;
6079 pub fn g_variant_type_new(type_string: *const c_char) -> *mut GVariantType;
6080 pub fn g_variant_type_new_array(element: *const GVariantType) -> *mut GVariantType;
6081 pub fn g_variant_type_new_dict_entry(
6082 key: *const GVariantType,
6083 value: *const GVariantType,
6084 ) -> *mut GVariantType;
6085 pub fn g_variant_type_new_maybe(element: *const GVariantType) -> *mut GVariantType;
6086 pub fn g_variant_type_new_tuple(
6087 items: *const *const GVariantType,
6088 length: c_int,
6089 ) -> *mut GVariantType;
6090 pub fn g_variant_type_copy(type_: *const GVariantType) -> *mut GVariantType;
6091 pub fn g_variant_type_dup_string(type_: *const GVariantType) -> *mut c_char;
6092 pub fn g_variant_type_element(type_: *const GVariantType) -> *const GVariantType;
6093 pub fn g_variant_type_equal(type1: gconstpointer, type2: gconstpointer) -> gboolean;
6094 pub fn g_variant_type_first(type_: *const GVariantType) -> *const GVariantType;
6095 pub fn g_variant_type_free(type_: *mut GVariantType);
6096 pub fn g_variant_type_get_string_length(type_: *const GVariantType) -> size_t;
6097 pub fn g_variant_type_hash(type_: gconstpointer) -> c_uint;
6098 pub fn g_variant_type_is_array(type_: *const GVariantType) -> gboolean;
6099 pub fn g_variant_type_is_basic(type_: *const GVariantType) -> gboolean;
6100 pub fn g_variant_type_is_container(type_: *const GVariantType) -> gboolean;
6101 pub fn g_variant_type_is_definite(type_: *const GVariantType) -> gboolean;
6102 pub fn g_variant_type_is_dict_entry(type_: *const GVariantType) -> gboolean;
6103 pub fn g_variant_type_is_maybe(type_: *const GVariantType) -> gboolean;
6104 pub fn g_variant_type_is_subtype_of(
6105 type_: *const GVariantType,
6106 supertype: *const GVariantType,
6107 ) -> gboolean;
6108 pub fn g_variant_type_is_tuple(type_: *const GVariantType) -> gboolean;
6109 pub fn g_variant_type_is_variant(type_: *const GVariantType) -> gboolean;
6110 pub fn g_variant_type_key(type_: *const GVariantType) -> *const GVariantType;
6111 pub fn g_variant_type_n_items(type_: *const GVariantType) -> size_t;
6112 pub fn g_variant_type_next(type_: *const GVariantType) -> *const GVariantType;
6113 pub fn g_variant_type_peek_string(type_: *const GVariantType) -> *const c_char;
6114 pub fn g_variant_type_value(type_: *const GVariantType) -> *const GVariantType;
6115 pub fn g_variant_type_checked_(type_string: *const c_char) -> *const GVariantType;
6116 pub fn g_variant_type_string_get_depth_(type_string: *const c_char) -> size_t;
6117 pub fn g_variant_type_string_is_valid(type_string: *const c_char) -> gboolean;
6118 pub fn g_variant_type_string_scan(
6119 string: *const c_char,
6120 limit: *const c_char,
6121 endptr: *mut *const c_char,
6122 ) -> gboolean;
6123
6124 pub fn g_access(filename: *const c_char, mode: c_int) -> c_int;
6128 #[cfg(feature = "v2_72")]
6129 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6130 pub fn g_aligned_alloc(n_blocks: size_t, n_block_bytes: size_t, alignment: size_t) -> gpointer;
6131 #[cfg(feature = "v2_72")]
6132 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6133 pub fn g_aligned_alloc0(n_blocks: size_t, n_block_bytes: size_t, alignment: size_t)
6134 -> gpointer;
6135 #[cfg(feature = "v2_72")]
6136 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6137 pub fn g_aligned_free(mem: gpointer);
6138 #[cfg(feature = "v2_76")]
6139 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
6140 pub fn g_aligned_free_sized(mem: gpointer, alignment: size_t, size: size_t);
6141 pub fn g_ascii_digit_value(c: c_char) -> c_int;
6142 pub fn g_ascii_dtostr(buffer: *mut c_char, buf_len: c_int, d: c_double) -> *mut c_char;
6143 pub fn g_ascii_formatd(
6144 buffer: *mut c_char,
6145 buf_len: c_int,
6146 format: *const c_char,
6147 d: c_double,
6148 ) -> *mut c_char;
6149 pub fn g_ascii_strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int;
6150 pub fn g_ascii_strdown(str: *const c_char, len: ssize_t) -> *mut c_char;
6151 pub fn g_ascii_string_to_signed(
6152 str: *const c_char,
6153 base: c_uint,
6154 min: i64,
6155 max: i64,
6156 out_num: *mut i64,
6157 error: *mut *mut GError,
6158 ) -> gboolean;
6159 pub fn g_ascii_string_to_unsigned(
6160 str: *const c_char,
6161 base: c_uint,
6162 min: u64,
6163 max: u64,
6164 out_num: *mut u64,
6165 error: *mut *mut GError,
6166 ) -> gboolean;
6167 pub fn g_ascii_strncasecmp(s1: *const c_char, s2: *const c_char, n: size_t) -> c_int;
6168 pub fn g_ascii_strtod(nptr: *const c_char, endptr: *mut *mut c_char) -> c_double;
6169 pub fn g_ascii_strtoll(nptr: *const c_char, endptr: *mut *mut c_char, base: c_uint) -> i64;
6170 pub fn g_ascii_strtoull(nptr: *const c_char, endptr: *mut *mut c_char, base: c_uint) -> u64;
6171 pub fn g_ascii_strup(str: *const c_char, len: ssize_t) -> *mut c_char;
6172 pub fn g_ascii_tolower(c: c_char) -> c_char;
6173 pub fn g_ascii_toupper(c: c_char) -> c_char;
6174 pub fn g_ascii_xdigit_value(c: c_char) -> c_int;
6175 pub fn g_assert_warning(
6176 log_domain: *const c_char,
6177 file: *const c_char,
6178 line: c_int,
6179 pretty_function: *const c_char,
6180 expression: *const c_char,
6181 );
6182 pub fn g_assertion_message(
6183 domain: *const c_char,
6184 file: *const c_char,
6185 line: c_int,
6186 func: *const c_char,
6187 message: *const c_char,
6188 );
6189 #[cfg(feature = "v2_78")]
6190 #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
6191 pub fn g_assertion_message_cmpint(
6192 domain: *const c_char,
6193 file: *const c_char,
6194 line: c_int,
6195 func: *const c_char,
6196 expr: *const c_char,
6197 arg1: u64,
6198 cmp: *const c_char,
6199 arg2: u64,
6200 numtype: c_char,
6201 );
6202 pub fn g_assertion_message_cmpstr(
6204 domain: *const c_char,
6205 file: *const c_char,
6206 line: c_int,
6207 func: *const c_char,
6208 expr: *const c_char,
6209 arg1: *const c_char,
6210 cmp: *const c_char,
6211 arg2: *const c_char,
6212 );
6213 pub fn g_assertion_message_cmpstrv(
6214 domain: *const c_char,
6215 file: *const c_char,
6216 line: c_int,
6217 func: *const c_char,
6218 expr: *const c_char,
6219 arg1: *const *const c_char,
6220 arg2: *const *const c_char,
6221 first_wrong_idx: size_t,
6222 );
6223 pub fn g_assertion_message_error(
6224 domain: *const c_char,
6225 file: *const c_char,
6226 line: c_int,
6227 func: *const c_char,
6228 expr: *const c_char,
6229 error: *const GError,
6230 error_domain: GQuark,
6231 error_code: c_int,
6232 );
6233 pub fn g_assertion_message_expr(
6234 domain: *const c_char,
6235 file: *const c_char,
6236 line: c_int,
6237 func: *const c_char,
6238 expr: *const c_char,
6239 );
6240 pub fn g_atexit(func: GVoidFunc);
6241 pub fn g_atomic_int_add(atomic: *mut gint, val: c_int) -> c_int;
6242 pub fn g_atomic_int_and(atomic: *mut guint, val: c_uint) -> c_uint;
6243 pub fn g_atomic_int_compare_and_exchange(
6244 atomic: *mut gint,
6245 oldval: c_int,
6246 newval: c_int,
6247 ) -> gboolean;
6248 #[cfg(feature = "v2_74")]
6249 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6250 pub fn g_atomic_int_compare_and_exchange_full(
6251 atomic: *mut gint,
6252 oldval: c_int,
6253 newval: c_int,
6254 preval: *mut c_int,
6255 ) -> gboolean;
6256 pub fn g_atomic_int_dec_and_test(atomic: *mut gint) -> gboolean;
6257 #[cfg(feature = "v2_74")]
6258 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6259 pub fn g_atomic_int_exchange(atomic: *mut gint, newval: c_int) -> c_int;
6260 pub fn g_atomic_int_exchange_and_add(atomic: *mut gint, val: c_int) -> c_int;
6261 pub fn g_atomic_int_inc(atomic: *mut gint);
6262 pub fn g_atomic_int_or(atomic: *mut guint, val: c_uint) -> c_uint;
6263 pub fn g_atomic_int_set(atomic: *mut gint, newval: c_int);
6264 pub fn g_atomic_int_xor(atomic: *mut guint, val: c_uint) -> c_uint;
6265 pub fn g_atomic_pointer_add(atomic: *mut c_void, val: ssize_t) -> intptr_t;
6266 pub fn g_atomic_pointer_and(atomic: *mut c_void, val: size_t) -> uintptr_t;
6267 pub fn g_atomic_pointer_compare_and_exchange(
6268 atomic: *mut c_void,
6269 oldval: gpointer,
6270 newval: gpointer,
6271 ) -> gboolean;
6272 #[cfg(feature = "v2_74")]
6273 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6274 pub fn g_atomic_pointer_compare_and_exchange_full(
6275 atomic: *mut c_void,
6276 oldval: gpointer,
6277 newval: gpointer,
6278 preval: *mut c_void,
6279 ) -> gboolean;
6280 #[cfg(feature = "v2_74")]
6281 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6282 pub fn g_atomic_pointer_exchange(atomic: *mut c_void, newval: gpointer) -> gpointer;
6283 pub fn g_atomic_pointer_get(atomic: *mut c_void) -> gpointer;
6284 pub fn g_atomic_pointer_or(atomic: *mut c_void, val: size_t) -> uintptr_t;
6285 pub fn g_atomic_pointer_set(atomic: *mut c_void, newval: gpointer);
6286 pub fn g_atomic_pointer_xor(atomic: *mut c_void, val: size_t) -> uintptr_t;
6287 #[cfg(feature = "v2_58")]
6288 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6289 pub fn g_atomic_rc_box_acquire(mem_block: gpointer) -> gpointer;
6290 #[cfg(feature = "v2_58")]
6291 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6292 pub fn g_atomic_rc_box_alloc(block_size: size_t) -> gpointer;
6293 #[cfg(feature = "v2_58")]
6294 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6295 pub fn g_atomic_rc_box_alloc0(block_size: size_t) -> gpointer;
6296 #[cfg(feature = "v2_58")]
6297 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6298 pub fn g_atomic_rc_box_dup(block_size: size_t, mem_block: gconstpointer) -> gpointer;
6299 #[cfg(feature = "v2_58")]
6300 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6301 pub fn g_atomic_rc_box_get_size(mem_block: gpointer) -> size_t;
6302 #[cfg(feature = "v2_58")]
6303 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6304 pub fn g_atomic_rc_box_release(mem_block: gpointer);
6305 #[cfg(feature = "v2_58")]
6306 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6307 pub fn g_atomic_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify);
6308 #[cfg(feature = "v2_58")]
6309 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6310 pub fn g_atomic_ref_count_compare(arc: *mut c_int, val: c_int) -> gboolean;
6311 #[cfg(feature = "v2_58")]
6312 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6313 pub fn g_atomic_ref_count_dec(arc: *mut c_int) -> gboolean;
6314 #[cfg(feature = "v2_58")]
6315 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6316 pub fn g_atomic_ref_count_inc(arc: *mut c_int);
6317 #[cfg(feature = "v2_58")]
6318 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6319 pub fn g_atomic_ref_count_init(arc: *mut c_int);
6320 pub fn g_base64_decode(text: *const c_char, out_len: *mut size_t) -> *mut u8;
6321 pub fn g_base64_decode_inplace(text: *mut u8, out_len: *mut size_t) -> *mut u8;
6322 pub fn g_base64_decode_step(
6323 in_: *const u8,
6324 len: size_t,
6325 out: *mut u8,
6326 state: *mut c_int,
6327 save: *mut c_uint,
6328 ) -> size_t;
6329 pub fn g_base64_encode(data: *const u8, len: size_t) -> *mut c_char;
6330 pub fn g_base64_encode_close(
6331 break_lines: gboolean,
6332 out: *mut u8,
6333 state: *mut c_int,
6334 save: *mut c_int,
6335 ) -> size_t;
6336 pub fn g_base64_encode_step(
6337 in_: *const u8,
6338 len: size_t,
6339 break_lines: gboolean,
6340 out: *mut u8,
6341 state: *mut c_int,
6342 save: *mut c_int,
6343 ) -> size_t;
6344 pub fn g_basename(file_name: *const c_char) -> *const c_char;
6345 pub fn g_bit_lock(address: *mut gint, lock_bit: c_int);
6346 #[cfg(feature = "v2_86")]
6347 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
6348 pub fn g_bit_lock_and_get(address: *mut gint, lock_bit: c_uint, out_val: *mut c_int);
6349 pub fn g_bit_nth_lsf(mask: c_ulong, nth_bit: c_int) -> c_int;
6350 pub fn g_bit_nth_msf(mask: c_ulong, nth_bit: c_int) -> c_int;
6351 pub fn g_bit_storage(number: c_ulong) -> c_uint;
6352 pub fn g_bit_trylock(address: *mut gint, lock_bit: c_int) -> gboolean;
6353 pub fn g_bit_unlock(address: *mut gint, lock_bit: c_int);
6354 #[cfg(feature = "v2_86")]
6355 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
6356 pub fn g_bit_unlock_and_set(
6357 address: *mut gint,
6358 lock_bit: c_uint,
6359 new_val: c_int,
6360 preserve_mask: c_int,
6361 );
6362 pub fn g_build_filename(first_element: *const c_char, ...) -> *mut c_char;
6363 pub fn g_build_filenamev(args: *mut *mut c_char) -> *mut c_char;
6365 pub fn g_build_path(separator: *const c_char, first_element: *const c_char, ...)
6366 -> *mut c_char;
6367 pub fn g_build_pathv(separator: *const c_char, args: *mut *mut c_char) -> *mut c_char;
6368 #[cfg(feature = "v2_58")]
6369 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6370 pub fn g_canonicalize_filename(
6371 filename: *const c_char,
6372 relative_to: *const c_char,
6373 ) -> *mut c_char;
6374 pub fn g_chdir(path: *const c_char) -> c_int;
6375 pub fn glib_check_version(
6376 required_major: c_uint,
6377 required_minor: c_uint,
6378 required_micro: c_uint,
6379 ) -> *const c_char;
6380 pub fn g_child_watch_add(pid: GPid, function: GChildWatchFunc, data: gpointer) -> c_uint;
6381 pub fn g_child_watch_add_full(
6382 priority: c_int,
6383 pid: GPid,
6384 function: GChildWatchFunc,
6385 data: gpointer,
6386 notify: GDestroyNotify,
6387 ) -> c_uint;
6388 pub fn g_child_watch_source_new(pid: GPid) -> *mut GSource;
6389 pub fn g_clear_error(error: *mut *mut GError);
6390 pub fn g_clear_handle_id(tag_ptr: *mut c_uint, clear_func: GClearHandleFunc);
6391 #[cfg(feature = "v2_64")]
6392 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
6393 pub fn g_clear_list(list_ptr: *mut *mut GList, destroy: GDestroyNotify);
6394 pub fn g_clear_pointer(pp: *mut gpointer, destroy: GDestroyNotify);
6395 #[cfg(feature = "v2_64")]
6396 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
6397 pub fn g_clear_slist(slist_ptr: *mut *mut GSList, destroy: GDestroyNotify);
6398 pub fn g_close(fd: c_int, error: *mut *mut GError) -> gboolean;
6399 #[cfg(feature = "v2_80")]
6400 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6401 pub fn g_closefrom(lowfd: c_int) -> c_int;
6402 pub fn g_compute_checksum_for_bytes(
6403 checksum_type: GChecksumType,
6404 data: *mut GBytes,
6405 ) -> *mut c_char;
6406 pub fn g_compute_checksum_for_data(
6407 checksum_type: GChecksumType,
6408 data: *const u8,
6409 length: size_t,
6410 ) -> *mut c_char;
6411 pub fn g_compute_checksum_for_string(
6412 checksum_type: GChecksumType,
6413 str: *const c_char,
6414 length: ssize_t,
6415 ) -> *mut c_char;
6416 pub fn g_compute_hmac_for_bytes(
6417 digest_type: GChecksumType,
6418 key: *mut GBytes,
6419 data: *mut GBytes,
6420 ) -> *mut c_char;
6421 pub fn g_compute_hmac_for_data(
6422 digest_type: GChecksumType,
6423 key: *const u8,
6424 key_len: size_t,
6425 data: *const u8,
6426 length: size_t,
6427 ) -> *mut c_char;
6428 pub fn g_compute_hmac_for_string(
6429 digest_type: GChecksumType,
6430 key: *const u8,
6431 key_len: size_t,
6432 str: *const c_char,
6433 length: ssize_t,
6434 ) -> *mut c_char;
6435 pub fn g_convert(
6436 str: *const u8,
6437 len: ssize_t,
6438 to_codeset: *const c_char,
6439 from_codeset: *const c_char,
6440 bytes_read: *mut size_t,
6441 bytes_written: *mut size_t,
6442 error: *mut *mut GError,
6443 ) -> *mut u8;
6444 pub fn g_convert_error_quark() -> GQuark;
6445 pub fn g_convert_with_fallback(
6446 str: *const u8,
6447 len: ssize_t,
6448 to_codeset: *const c_char,
6449 from_codeset: *const c_char,
6450 fallback: *const c_char,
6451 bytes_read: *mut size_t,
6452 bytes_written: *mut size_t,
6453 error: *mut *mut GError,
6454 ) -> *mut u8;
6455 pub fn g_convert_with_iconv(
6456 str: *const u8,
6457 len: ssize_t,
6458 converter: GIConv,
6459 bytes_read: *mut size_t,
6460 bytes_written: *mut size_t,
6461 error: *mut *mut GError,
6462 ) -> *mut u8;
6463 pub fn g_datalist_clear(datalist: *mut *mut GData);
6464 pub fn g_datalist_foreach(
6465 datalist: *mut *mut GData,
6466 func: GDataForeachFunc,
6467 user_data: gpointer,
6468 );
6469 pub fn g_datalist_get_data(datalist: *mut *mut GData, key: *const c_char) -> gpointer;
6470 pub fn g_datalist_get_flags(datalist: *mut *mut GData) -> c_uint;
6471 pub fn g_datalist_id_dup_data(
6472 datalist: *mut *mut GData,
6473 key_id: GQuark,
6474 dup_func: GDuplicateFunc,
6475 user_data: gpointer,
6476 ) -> gpointer;
6477 pub fn g_datalist_id_get_data(datalist: *mut *mut GData, key_id: GQuark) -> gpointer;
6478 #[cfg(feature = "v2_74")]
6479 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6480 pub fn g_datalist_id_remove_multiple(
6481 datalist: *mut *mut GData,
6482 keys: *mut GQuark,
6483 n_keys: size_t,
6484 );
6485 pub fn g_datalist_id_remove_no_notify(datalist: *mut *mut GData, key_id: GQuark) -> gpointer;
6486 pub fn g_datalist_id_replace_data(
6487 datalist: *mut *mut GData,
6488 key_id: GQuark,
6489 oldval: gpointer,
6490 newval: gpointer,
6491 destroy: GDestroyNotify,
6492 old_destroy: *mut GDestroyNotify,
6493 ) -> gboolean;
6494 pub fn g_datalist_id_set_data_full(
6495 datalist: *mut *mut GData,
6496 key_id: GQuark,
6497 data: gpointer,
6498 destroy_func: GDestroyNotify,
6499 );
6500 pub fn g_datalist_init(datalist: *mut *mut GData);
6501 pub fn g_datalist_set_flags(datalist: *mut *mut GData, flags: c_uint);
6502 pub fn g_datalist_unset_flags(datalist: *mut *mut GData, flags: c_uint);
6503 pub fn g_dataset_destroy(dataset_location: gconstpointer);
6504 pub fn g_dataset_foreach(
6505 dataset_location: gconstpointer,
6506 func: GDataForeachFunc,
6507 user_data: gpointer,
6508 );
6509 pub fn g_dataset_id_get_data(dataset_location: gconstpointer, key_id: GQuark) -> gpointer;
6510 pub fn g_dataset_id_remove_no_notify(
6511 dataset_location: gconstpointer,
6512 key_id: GQuark,
6513 ) -> gpointer;
6514 pub fn g_dataset_id_set_data_full(
6515 dataset_location: gconstpointer,
6516 key_id: GQuark,
6517 data: gpointer,
6518 destroy_func: GDestroyNotify,
6519 );
6520 pub fn g_dcgettext(
6521 domain: *const c_char,
6522 msgid: *const c_char,
6523 category: c_int,
6524 ) -> *const c_char;
6525 pub fn g_dgettext(domain: *const c_char, msgid: *const c_char) -> *const c_char;
6526 pub fn g_direct_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
6527 pub fn g_direct_hash(v: gconstpointer) -> c_uint;
6528 pub fn g_dngettext(
6529 domain: *const c_char,
6530 msgid: *const c_char,
6531 msgid_plural: *const c_char,
6532 n: c_ulong,
6533 ) -> *const c_char;
6534 pub fn g_double_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
6535 pub fn g_double_hash(v: gconstpointer) -> c_uint;
6536 pub fn g_dpgettext(
6537 domain: *const c_char,
6538 msgctxtid: *const c_char,
6539 msgidoffset: size_t,
6540 ) -> *const c_char;
6541 pub fn g_dpgettext2(
6542 domain: *const c_char,
6543 context: *const c_char,
6544 msgid: *const c_char,
6545 ) -> *const c_char;
6546 pub fn g_environ_getenv(envp: *mut *mut c_char, variable: *const c_char) -> *const c_char;
6547 pub fn g_environ_setenv(
6548 envp: *mut *mut c_char,
6549 variable: *const c_char,
6550 value: *const c_char,
6551 overwrite: gboolean,
6552 ) -> *mut *mut c_char;
6553 pub fn g_environ_unsetenv(envp: *mut *mut c_char, variable: *const c_char) -> *mut *mut c_char;
6554 #[cfg(feature = "v2_80")]
6555 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6556 pub fn g_fdwalk_set_cloexec(lowfd: c_int) -> c_int;
6557 pub fn g_file_error_from_errno(err_no: c_int) -> GFileError;
6558 pub fn g_file_error_quark() -> GQuark;
6559 pub fn g_file_get_contents(
6560 filename: *const c_char,
6561 contents: *mut *mut u8,
6562 length: *mut size_t,
6563 error: *mut *mut GError,
6564 ) -> gboolean;
6565 pub fn g_file_open_tmp(
6566 tmpl: *const c_char,
6567 name_used: *mut *mut c_char,
6568 error: *mut *mut GError,
6569 ) -> c_int;
6570 pub fn g_file_read_link(filename: *const c_char, error: *mut *mut GError) -> *mut c_char;
6571 pub fn g_file_set_contents(
6572 filename: *const c_char,
6573 contents: *const u8,
6574 length: ssize_t,
6575 error: *mut *mut GError,
6576 ) -> gboolean;
6577 #[cfg(feature = "v2_66")]
6578 #[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
6579 pub fn g_file_set_contents_full(
6580 filename: *const c_char,
6581 contents: *const u8,
6582 length: ssize_t,
6583 flags: GFileSetContentsFlags,
6584 mode: c_int,
6585 error: *mut *mut GError,
6586 ) -> gboolean;
6587 pub fn g_file_test(filename: *const c_char, test: GFileTest) -> gboolean;
6588 pub fn g_filename_display_basename(filename: *const c_char) -> *mut c_char;
6589 pub fn g_filename_display_name(filename: *const c_char) -> *mut c_char;
6590 pub fn g_filename_from_uri(
6591 uri: *const c_char,
6592 hostname: *mut *mut c_char,
6593 error: *mut *mut GError,
6594 ) -> *mut c_char;
6595 pub fn g_filename_from_utf8(
6596 utf8string: *const c_char,
6597 len: ssize_t,
6598 bytes_read: *mut size_t,
6599 bytes_written: *mut size_t,
6600 error: *mut *mut GError,
6601 ) -> *mut c_char;
6602 pub fn g_filename_to_uri(
6603 filename: *const c_char,
6604 hostname: *const c_char,
6605 error: *mut *mut GError,
6606 ) -> *mut c_char;
6607 pub fn g_filename_to_utf8(
6608 opsysstring: *const c_char,
6609 len: ssize_t,
6610 bytes_read: *mut size_t,
6611 bytes_written: *mut size_t,
6612 error: *mut *mut GError,
6613 ) -> *mut c_char;
6614 pub fn g_find_program_in_path(program: *const c_char) -> *mut c_char;
6615 pub fn g_format_size(size: u64) -> *mut c_char;
6616 pub fn g_format_size_for_display(size: i64) -> *mut c_char;
6617 pub fn g_format_size_full(size: u64, flags: GFormatSizeFlags) -> *mut c_char;
6618 pub fn g_fprintf(file: *mut FILE, format: *const c_char, ...) -> c_int;
6619 pub fn g_free(mem: gpointer);
6620 #[cfg(feature = "v2_76")]
6621 #[cfg_attr(docsrs, doc(cfg(feature = "v2_76")))]
6622 pub fn g_free_sized(mem: gpointer, size: size_t);
6623 pub fn g_get_application_name() -> *const c_char;
6624 pub fn g_get_charset(charset: *mut *const c_char) -> gboolean;
6625 pub fn g_get_codeset() -> *mut c_char;
6626 #[cfg(feature = "v2_62")]
6627 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
6628 pub fn g_get_console_charset(charset: *mut *const c_char) -> gboolean;
6629 pub fn g_get_current_dir() -> *mut c_char;
6630 pub fn g_get_current_time(result: *mut GTimeVal);
6631 pub fn g_get_environ() -> *mut *mut c_char;
6632 pub fn g_get_filename_charsets(filename_charsets: *mut *mut *const c_char) -> gboolean;
6633 pub fn g_get_home_dir() -> *const c_char;
6634 pub fn g_get_host_name() -> *const c_char;
6635 pub fn g_get_language_names() -> *const *const c_char;
6636 #[cfg(feature = "v2_58")]
6637 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6638 pub fn g_get_language_names_with_category(category_name: *const c_char)
6639 -> *const *const c_char;
6640 pub fn g_get_locale_variants(locale: *const c_char) -> *mut *mut c_char;
6641 pub fn g_get_monotonic_time() -> i64;
6642 pub fn g_get_num_processors() -> c_uint;
6643 #[cfg(feature = "v2_64")]
6644 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
6645 pub fn g_get_os_info(key_name: *const c_char) -> *mut c_char;
6646 pub fn g_get_prgname() -> *const c_char;
6647 pub fn g_get_real_name() -> *const c_char;
6648 pub fn g_get_real_time() -> i64;
6649 pub fn g_get_system_config_dirs() -> *const *const c_char;
6650 pub fn g_get_system_data_dirs() -> *const *const c_char;
6651 pub fn g_get_tmp_dir() -> *const c_char;
6652 pub fn g_get_user_cache_dir() -> *const c_char;
6653 pub fn g_get_user_config_dir() -> *const c_char;
6654 pub fn g_get_user_data_dir() -> *const c_char;
6655 pub fn g_get_user_name() -> *const c_char;
6656 pub fn g_get_user_runtime_dir() -> *const c_char;
6657 pub fn g_get_user_special_dir(directory: GUserDirectory) -> *const c_char;
6658 #[cfg(feature = "v2_72")]
6659 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6660 pub fn g_get_user_state_dir() -> *const c_char;
6661 pub fn g_getenv(variable: *const c_char) -> *const c_char;
6662 pub fn g_hostname_is_ascii_encoded(hostname: *const c_char) -> gboolean;
6663 pub fn g_hostname_is_ip_address(hostname: *const c_char) -> gboolean;
6664 pub fn g_hostname_is_non_ascii(hostname: *const c_char) -> gboolean;
6665 pub fn g_hostname_to_ascii(hostname: *const c_char) -> *mut c_char;
6666 pub fn g_hostname_to_unicode(hostname: *const c_char) -> *mut c_char;
6667 pub fn g_iconv(
6668 converter: GIConv,
6669 inbuf: *mut *mut c_char,
6670 inbytes_left: *mut size_t,
6671 outbuf: *mut *mut c_char,
6672 outbytes_left: *mut size_t,
6673 ) -> size_t;
6674 pub fn g_idle_add(function: GSourceFunc, data: gpointer) -> c_uint;
6675 pub fn g_idle_add_full(
6676 priority: c_int,
6677 function: GSourceFunc,
6678 data: gpointer,
6679 notify: GDestroyNotify,
6680 ) -> c_uint;
6681 #[cfg(feature = "v2_74")]
6682 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
6683 pub fn g_idle_add_once(function: GSourceOnceFunc, data: gpointer) -> c_uint;
6684 pub fn g_idle_remove_by_data(data: gpointer) -> gboolean;
6685 pub fn g_idle_source_new() -> *mut GSource;
6686 pub fn g_int64_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
6687 pub fn g_int64_hash(v: gconstpointer) -> c_uint;
6688 pub fn g_int_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
6689 pub fn g_int_hash(v: gconstpointer) -> c_uint;
6690 pub fn g_intern_static_string(string: *const c_char) -> *const c_char;
6691 pub fn g_intern_string(string: *const c_char) -> *const c_char;
6692 pub fn g_io_add_watch(
6693 channel: *mut GIOChannel,
6694 condition: GIOCondition,
6695 func: GIOFunc,
6696 user_data: gpointer,
6697 ) -> c_uint;
6698 pub fn g_io_add_watch_full(
6699 channel: *mut GIOChannel,
6700 priority: c_int,
6701 condition: GIOCondition,
6702 func: GIOFunc,
6703 user_data: gpointer,
6704 notify: GDestroyNotify,
6705 ) -> c_uint;
6706 pub fn g_io_create_watch(channel: *mut GIOChannel, condition: GIOCondition) -> *mut GSource;
6707 pub fn g_listenv() -> *mut *mut c_char;
6708 pub fn g_locale_from_utf8(
6709 utf8string: *const c_char,
6710 len: ssize_t,
6711 bytes_read: *mut size_t,
6712 bytes_written: *mut size_t,
6713 error: *mut *mut GError,
6714 ) -> *mut u8;
6715 pub fn g_locale_to_utf8(
6716 opsysstring: *const u8,
6717 len: ssize_t,
6718 bytes_read: *mut size_t,
6719 bytes_written: *mut size_t,
6720 error: *mut *mut GError,
6721 ) -> *mut c_char;
6722 pub fn g_log(log_domain: *const c_char, log_level: GLogLevelFlags, format: *const c_char, ...);
6723 pub fn g_log_default_handler(
6724 log_domain: *const c_char,
6725 log_level: GLogLevelFlags,
6726 message: *const c_char,
6727 unused_data: gpointer,
6728 );
6729 #[cfg(feature = "v2_86")]
6730 #[cfg_attr(docsrs, doc(cfg(feature = "v2_86")))]
6731 pub fn g_log_get_always_fatal() -> GLogLevelFlags;
6732 #[cfg(feature = "v2_72")]
6733 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6734 pub fn g_log_get_debug_enabled() -> gboolean;
6735 pub fn g_log_remove_handler(log_domain: *const c_char, handler_id: c_uint);
6736 pub fn g_log_set_always_fatal(fatal_mask: GLogLevelFlags) -> GLogLevelFlags;
6737 #[cfg(feature = "v2_72")]
6738 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
6739 pub fn g_log_set_debug_enabled(enabled: gboolean);
6740 pub fn g_log_set_default_handler(log_func: GLogFunc, user_data: gpointer) -> GLogFunc;
6741 pub fn g_log_set_fatal_mask(
6742 log_domain: *const c_char,
6743 fatal_mask: GLogLevelFlags,
6744 ) -> GLogLevelFlags;
6745 pub fn g_log_set_handler(
6746 log_domain: *const c_char,
6747 log_levels: GLogLevelFlags,
6748 log_func: GLogFunc,
6749 user_data: gpointer,
6750 ) -> c_uint;
6751 pub fn g_log_set_handler_full(
6752 log_domain: *const c_char,
6753 log_levels: GLogLevelFlags,
6754 log_func: GLogFunc,
6755 user_data: gpointer,
6756 destroy: GDestroyNotify,
6757 ) -> c_uint;
6758 pub fn g_log_set_writer_func(
6759 func: GLogWriterFunc,
6760 user_data: gpointer,
6761 user_data_free: GDestroyNotify,
6762 );
6763 pub fn g_log_structured(log_domain: *const c_char, log_level: GLogLevelFlags, ...);
6764 pub fn g_log_structured_array(
6765 log_level: GLogLevelFlags,
6766 fields: *const GLogField,
6767 n_fields: size_t,
6768 );
6769 pub fn g_log_structured_standard(
6770 log_domain: *const c_char,
6771 log_level: GLogLevelFlags,
6772 file: *const c_char,
6773 line: *const c_char,
6774 func: *const c_char,
6775 message_format: *const c_char,
6776 ...
6777 );
6778 pub fn g_log_variant(
6779 log_domain: *const c_char,
6780 log_level: GLogLevelFlags,
6781 fields: *mut GVariant,
6782 );
6783 pub fn g_log_writer_default(
6784 log_level: GLogLevelFlags,
6785 fields: *const GLogField,
6786 n_fields: size_t,
6787 user_data: gpointer,
6788 ) -> GLogWriterOutput;
6789 #[cfg(feature = "v2_80")]
6790 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6791 pub fn g_log_writer_default_set_debug_domains(domains: *const *const c_char);
6792 #[cfg(feature = "v2_68")]
6793 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
6794 pub fn g_log_writer_default_set_use_stderr(use_stderr: gboolean);
6795 #[cfg(feature = "v2_68")]
6796 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
6797 pub fn g_log_writer_default_would_drop(
6798 log_level: GLogLevelFlags,
6799 log_domain: *const c_char,
6800 ) -> gboolean;
6801 pub fn g_log_writer_format_fields(
6802 log_level: GLogLevelFlags,
6803 fields: *const GLogField,
6804 n_fields: size_t,
6805 use_color: gboolean,
6806 ) -> *mut c_char;
6807 pub fn g_log_writer_is_journald(output_fd: c_int) -> gboolean;
6808 pub fn g_log_writer_journald(
6809 log_level: GLogLevelFlags,
6810 fields: *const GLogField,
6811 n_fields: size_t,
6812 user_data: gpointer,
6813 ) -> GLogWriterOutput;
6814 pub fn g_log_writer_standard_streams(
6815 log_level: GLogLevelFlags,
6816 fields: *const GLogField,
6817 n_fields: size_t,
6818 user_data: gpointer,
6819 ) -> GLogWriterOutput;
6820 pub fn g_log_writer_supports_color(output_fd: c_int) -> gboolean;
6821 #[cfg(feature = "v2_80")]
6822 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6823 pub fn g_log_writer_syslog(
6824 log_level: GLogLevelFlags,
6825 fields: *const GLogField,
6826 n_fields: size_t,
6827 user_data: gpointer,
6828 ) -> GLogWriterOutput;
6829 pub fn g_main_current_source() -> *mut GSource;
6831 pub fn g_main_depth() -> c_int;
6832 pub fn g_malloc(n_bytes: size_t) -> gpointer;
6833 pub fn g_malloc0(n_bytes: size_t) -> gpointer;
6834 pub fn g_malloc0_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
6835 pub fn g_malloc_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
6836 pub fn g_markup_collect_attributes(
6837 element_name: *const c_char,
6838 attribute_names: *mut *const c_char,
6839 attribute_values: *mut *const c_char,
6840 error: *mut *mut GError,
6841 first_type: GMarkupCollectType,
6842 first_attr: *const c_char,
6843 ...
6844 ) -> gboolean;
6845 pub fn g_markup_error_quark() -> GQuark;
6846 pub fn g_markup_escape_text(text: *const c_char, length: ssize_t) -> *mut c_char;
6847 pub fn g_markup_printf_escaped(format: *const c_char, ...) -> *mut c_char;
6848 pub fn g_mem_is_system_malloc() -> gboolean;
6850 pub fn g_mem_profile();
6851 pub fn g_mem_set_vtable(vtable: *mut GMemVTable);
6852 pub fn g_memdup(mem: gconstpointer, byte_size: c_uint) -> gpointer;
6853 #[cfg(feature = "v2_68")]
6854 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
6855 pub fn g_memdup2(mem: gconstpointer, byte_size: size_t) -> gpointer;
6856 pub fn g_mkdir_with_parents(pathname: *const c_char, mode: c_int) -> c_int;
6857 pub fn g_mkdtemp(tmpl: *mut c_char) -> *mut c_char;
6858 pub fn g_mkdtemp_full(tmpl: *mut c_char, mode: c_int) -> *mut c_char;
6859 pub fn g_mkstemp(tmpl: *mut c_char) -> c_int;
6860 pub fn g_mkstemp_full(tmpl: *mut c_char, flags: c_int, mode: c_int) -> c_int;
6861 pub fn g_nullify_pointer(nullify_location: *mut gpointer);
6862 pub fn g_number_parser_error_quark() -> GQuark;
6863 pub fn g_on_error_query(prg_name: *const c_char);
6864 pub fn g_on_error_stack_trace(prg_name: *const c_char);
6865 pub fn g_option_error_quark() -> GQuark;
6866 pub fn g_parse_debug_string(
6867 string: *const c_char,
6868 keys: *const GDebugKey,
6869 nkeys: c_uint,
6870 ) -> c_uint;
6871 pub fn g_path_get_basename(file_name: *const c_char) -> *mut c_char;
6872 pub fn g_path_get_dirname(file_name: *const c_char) -> *mut c_char;
6873 pub fn g_path_is_absolute(file_name: *const c_char) -> gboolean;
6874 pub fn g_path_skip_root(file_name: *const c_char) -> *const c_char;
6875 pub fn g_pattern_match(
6876 pspec: *mut GPatternSpec,
6877 string_length: c_uint,
6878 string: *const c_char,
6879 string_reversed: *const c_char,
6880 ) -> gboolean;
6881 pub fn g_pattern_match_simple(pattern: *const c_char, string: *const c_char) -> gboolean;
6882 pub fn g_pattern_match_string(pspec: *mut GPatternSpec, string: *const c_char) -> gboolean;
6883 pub fn g_pointer_bit_lock(address: *mut c_void, lock_bit: c_int);
6884 #[cfg(feature = "v2_80")]
6885 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6886 pub fn g_pointer_bit_lock_and_get(address: gpointer, lock_bit: c_uint, out_ptr: *mut uintptr_t);
6887 #[cfg(feature = "v2_80")]
6888 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6889 pub fn g_pointer_bit_lock_mask_ptr(
6890 ptr: gpointer,
6891 lock_bit: c_uint,
6892 set: gboolean,
6893 preserve_mask: uintptr_t,
6894 preserve_ptr: gpointer,
6895 ) -> gpointer;
6896 pub fn g_pointer_bit_trylock(address: *mut c_void, lock_bit: c_int) -> gboolean;
6897 pub fn g_pointer_bit_unlock(address: *mut c_void, lock_bit: c_int);
6898 #[cfg(feature = "v2_80")]
6899 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
6900 pub fn g_pointer_bit_unlock_and_set(
6901 address: *mut c_void,
6902 lock_bit: c_uint,
6903 ptr: gpointer,
6904 preserve_mask: uintptr_t,
6905 );
6906 pub fn g_poll(fds: *mut GPollFD, nfds: c_uint, timeout: c_int) -> c_int;
6907 pub fn g_prefix_error(err: *mut *mut GError, format: *const c_char, ...);
6908 #[cfg(feature = "v2_70")]
6909 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
6910 pub fn g_prefix_error_literal(err: *mut *mut GError, prefix: *const c_char);
6911 pub fn g_print(format: *const c_char, ...);
6912 pub fn g_printerr(format: *const c_char, ...);
6913 pub fn g_printf(format: *const c_char, ...) -> c_int;
6914 pub fn g_propagate_error(dest: *mut *mut GError, src: *mut GError);
6916 pub fn g_propagate_prefixed_error(
6917 dest: *mut *mut GError,
6918 src: *mut GError,
6919 format: *const c_char,
6920 ...
6921 );
6922 pub fn g_qsort_with_data(
6923 pbase: gconstpointer,
6924 total_elems: c_int,
6925 size: size_t,
6926 compare_func: GCompareDataFunc,
6927 user_data: gpointer,
6928 );
6929 pub fn g_quark_from_static_string(string: *const c_char) -> GQuark;
6930 pub fn g_quark_from_string(string: *const c_char) -> GQuark;
6931 pub fn g_quark_to_string(quark: GQuark) -> *const c_char;
6932 pub fn g_quark_try_string(string: *const c_char) -> GQuark;
6933 pub fn g_random_double() -> c_double;
6934 pub fn g_random_double_range(begin: c_double, end: c_double) -> c_double;
6935 pub fn g_random_int() -> u32;
6936 pub fn g_random_int_range(begin: i32, end: i32) -> i32;
6937 pub fn g_random_set_seed(seed: u32);
6938 #[cfg(feature = "v2_58")]
6939 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6940 pub fn g_rc_box_acquire(mem_block: gpointer) -> gpointer;
6941 #[cfg(feature = "v2_58")]
6942 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6943 pub fn g_rc_box_alloc(block_size: size_t) -> gpointer;
6944 #[cfg(feature = "v2_58")]
6945 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6946 pub fn g_rc_box_alloc0(block_size: size_t) -> gpointer;
6947 #[cfg(feature = "v2_58")]
6948 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6949 pub fn g_rc_box_dup(block_size: size_t, mem_block: gconstpointer) -> gpointer;
6950 #[cfg(feature = "v2_58")]
6951 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6952 pub fn g_rc_box_get_size(mem_block: gpointer) -> size_t;
6953 #[cfg(feature = "v2_58")]
6954 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6955 pub fn g_rc_box_release(mem_block: gpointer);
6956 #[cfg(feature = "v2_58")]
6957 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6958 pub fn g_rc_box_release_full(mem_block: gpointer, clear_func: GDestroyNotify);
6959 pub fn g_realloc(mem: gpointer, n_bytes: size_t) -> gpointer;
6960 pub fn g_realloc_n(mem: gpointer, n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
6961 #[cfg(feature = "v2_58")]
6962 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6963 pub fn g_ref_count_compare(rc: *mut c_int, val: c_int) -> gboolean;
6964 #[cfg(feature = "v2_58")]
6965 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6966 pub fn g_ref_count_dec(rc: *mut c_int) -> gboolean;
6967 #[cfg(feature = "v2_58")]
6968 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6969 pub fn g_ref_count_inc(rc: *mut c_int);
6970 #[cfg(feature = "v2_58")]
6971 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6972 pub fn g_ref_count_init(rc: *mut c_int);
6973 #[cfg(feature = "v2_58")]
6974 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6975 pub fn g_ref_string_acquire(str: *mut c_char) -> *mut c_char;
6976 #[cfg(feature = "v2_84")]
6977 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
6978 pub fn g_ref_string_equal(str1: *const c_char, str2: *const c_char) -> gboolean;
6979 #[cfg(feature = "v2_58")]
6980 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6981 pub fn g_ref_string_length(str: *mut c_char) -> size_t;
6982 #[cfg(feature = "v2_58")]
6983 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6984 pub fn g_ref_string_new(str: *const c_char) -> *mut c_char;
6985 #[cfg(feature = "v2_58")]
6986 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6987 pub fn g_ref_string_new_intern(str: *const c_char) -> *mut c_char;
6988 #[cfg(feature = "v2_58")]
6989 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6990 pub fn g_ref_string_new_len(str: *const c_char, len: ssize_t) -> *mut c_char;
6991 #[cfg(feature = "v2_58")]
6992 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
6993 pub fn g_ref_string_release(str: *mut c_char);
6994 pub fn g_reload_user_special_dirs_cache();
6995 pub fn g_return_if_fail_warning(
6996 log_domain: *const c_char,
6997 pretty_function: *const c_char,
6998 expression: *const c_char,
6999 );
7000 pub fn g_rmdir(filename: *const c_char) -> c_int;
7001 pub fn g_set_application_name(application_name: *const c_char);
7002 pub fn g_set_error(
7003 err: *mut *mut GError,
7004 domain: GQuark,
7005 code: c_int,
7006 format: *const c_char,
7007 ...
7008 );
7009 pub fn g_set_error_literal(
7010 err: *mut *mut GError,
7011 domain: GQuark,
7012 code: c_int,
7013 message: *const c_char,
7014 );
7015 pub fn g_set_prgname(prgname: *const c_char);
7016 pub fn g_set_print_handler(func: GPrintFunc) -> GPrintFunc;
7017 pub fn g_set_printerr_handler(func: GPrintFunc) -> GPrintFunc;
7018 pub fn g_setenv(variable: *const c_char, value: *const c_char, overwrite: gboolean)
7019 -> gboolean;
7020 pub fn g_shell_error_quark() -> GQuark;
7021 pub fn g_shell_parse_argv(
7022 command_line: *const c_char,
7023 argcp: *mut c_int,
7024 argvp: *mut *mut *mut c_char,
7025 error: *mut *mut GError,
7026 ) -> gboolean;
7027 pub fn g_shell_quote(unquoted_string: *const c_char) -> *mut c_char;
7028 pub fn g_shell_unquote(quoted_string: *const c_char, error: *mut *mut GError) -> *mut c_char;
7029 pub fn g_slice_alloc(block_size: size_t) -> gpointer;
7030 pub fn g_slice_alloc0(block_size: size_t) -> gpointer;
7031 pub fn g_slice_copy(block_size: size_t, mem_block: gconstpointer) -> gpointer;
7032 pub fn g_slice_free1(block_size: size_t, mem_block: gpointer);
7033 pub fn g_slice_free_chain_with_offset(
7034 block_size: size_t,
7035 mem_chain: gpointer,
7036 next_offset: size_t,
7037 );
7038 pub fn g_slice_get_config(ckey: GSliceConfig) -> i64;
7039 pub fn g_slice_get_config_state(
7040 ckey: GSliceConfig,
7041 address: i64,
7042 n_values: *mut c_uint,
7043 ) -> *mut i64;
7044 pub fn g_slice_set_config(ckey: GSliceConfig, value: i64);
7045 pub fn g_snprintf(string: *mut c_char, n: c_ulong, format: *const c_char, ...) -> c_int;
7046 #[cfg(feature = "v2_82")]
7047 #[cfg_attr(docsrs, doc(cfg(feature = "v2_82")))]
7048 pub fn g_sort_array(
7049 array: *mut c_void,
7050 n_elements: size_t,
7051 element_size: size_t,
7052 compare_func: GCompareDataFunc,
7053 user_data: *mut c_void,
7054 );
7055 pub fn g_spaced_primes_closest(num: c_uint) -> c_uint;
7056 pub fn g_spawn_async(
7057 working_directory: *const c_char,
7058 argv: *mut *mut c_char,
7059 envp: *mut *mut c_char,
7060 flags: GSpawnFlags,
7061 child_setup: GSpawnChildSetupFunc,
7062 user_data: gpointer,
7063 child_pid: *mut GPid,
7064 error: *mut *mut GError,
7065 ) -> gboolean;
7066 #[cfg(feature = "v2_58")]
7067 #[cfg_attr(docsrs, doc(cfg(feature = "v2_58")))]
7068 pub fn g_spawn_async_with_fds(
7069 working_directory: *const c_char,
7070 argv: *mut *mut c_char,
7071 envp: *mut *mut c_char,
7072 flags: GSpawnFlags,
7073 child_setup: GSpawnChildSetupFunc,
7074 user_data: gpointer,
7075 child_pid: *mut GPid,
7076 stdin_fd: c_int,
7077 stdout_fd: c_int,
7078 stderr_fd: c_int,
7079 error: *mut *mut GError,
7080 ) -> gboolean;
7081 pub fn g_spawn_async_with_pipes(
7082 working_directory: *const c_char,
7083 argv: *mut *mut c_char,
7084 envp: *mut *mut c_char,
7085 flags: GSpawnFlags,
7086 child_setup: GSpawnChildSetupFunc,
7087 user_data: gpointer,
7088 child_pid: *mut GPid,
7089 standard_input: *mut c_int,
7090 standard_output: *mut c_int,
7091 standard_error: *mut c_int,
7092 error: *mut *mut GError,
7093 ) -> gboolean;
7094 #[cfg(feature = "v2_68")]
7095 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
7096 pub fn g_spawn_async_with_pipes_and_fds(
7097 working_directory: *const c_char,
7098 argv: *const *const c_char,
7099 envp: *const *const c_char,
7100 flags: GSpawnFlags,
7101 child_setup: GSpawnChildSetupFunc,
7102 user_data: gpointer,
7103 stdin_fd: c_int,
7104 stdout_fd: c_int,
7105 stderr_fd: c_int,
7106 source_fds: *const c_int,
7107 target_fds: *const c_int,
7108 n_fds: size_t,
7109 child_pid_out: *mut GPid,
7110 stdin_pipe_out: *mut c_int,
7111 stdout_pipe_out: *mut c_int,
7112 stderr_pipe_out: *mut c_int,
7113 error: *mut *mut GError,
7114 ) -> gboolean;
7115 pub fn g_spawn_check_exit_status(wait_status: c_int, error: *mut *mut GError) -> gboolean;
7116 #[cfg(feature = "v2_70")]
7117 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
7118 pub fn g_spawn_check_wait_status(wait_status: c_int, error: *mut *mut GError) -> gboolean;
7119 pub fn g_spawn_close_pid(pid: GPid);
7120 pub fn g_spawn_command_line_async(
7121 command_line: *const c_char,
7122 error: *mut *mut GError,
7123 ) -> gboolean;
7124 pub fn g_spawn_command_line_sync(
7125 command_line: *const c_char,
7126 standard_output: *mut *mut u8,
7127 standard_error: *mut *mut u8,
7128 wait_status: *mut c_int,
7129 error: *mut *mut GError,
7130 ) -> gboolean;
7131 pub fn g_spawn_error_quark() -> GQuark;
7132 pub fn g_spawn_exit_error_quark() -> GQuark;
7133 pub fn g_spawn_sync(
7134 working_directory: *const c_char,
7135 argv: *mut *mut c_char,
7136 envp: *mut *mut c_char,
7137 flags: GSpawnFlags,
7138 child_setup: GSpawnChildSetupFunc,
7139 user_data: gpointer,
7140 standard_output: *mut *mut u8,
7141 standard_error: *mut *mut u8,
7142 wait_status: *mut c_int,
7143 error: *mut *mut GError,
7144 ) -> gboolean;
7145 pub fn g_sprintf(string: *mut c_char, format: *const c_char, ...) -> c_int;
7146 pub fn g_stat(filename: *const c_char, buf: *mut GStatBuf) -> c_int;
7147 pub fn g_stpcpy(dest: *mut c_char, src: *const c_char) -> *mut c_char;
7148 pub fn g_str_equal(v1: gconstpointer, v2: gconstpointer) -> gboolean;
7149 pub fn g_str_has_prefix(str: *const c_char, prefix: *const c_char) -> gboolean;
7150 pub fn g_str_has_suffix(str: *const c_char, suffix: *const c_char) -> gboolean;
7151 pub fn g_str_hash(v: gconstpointer) -> c_uint;
7152 pub fn g_str_is_ascii(str: *const c_char) -> gboolean;
7153 pub fn g_str_match_string(
7154 search_term: *const c_char,
7155 potential_hit: *const c_char,
7156 accept_alternates: gboolean,
7157 ) -> gboolean;
7158 pub fn g_str_to_ascii(str: *const c_char, from_locale: *const c_char) -> *mut c_char;
7159 pub fn g_str_tokenize_and_fold(
7160 string: *const c_char,
7161 translit_locale: *const c_char,
7162 ascii_alternates: *mut *mut *mut c_char,
7163 ) -> *mut *mut c_char;
7164 pub fn g_strcanon(
7165 string: *mut c_char,
7166 valid_chars: *const c_char,
7167 substitutor: c_char,
7168 ) -> *mut c_char;
7169 pub fn g_strcasecmp(s1: *const c_char, s2: *const c_char) -> c_int;
7170 pub fn g_strchomp(string: *mut c_char) -> *mut c_char;
7171 pub fn g_strchug(string: *mut c_char) -> *mut c_char;
7172 pub fn g_strcmp0(str1: *const c_char, str2: *const c_char) -> c_int;
7173 pub fn g_strcompress(source: *const c_char) -> *mut c_char;
7174 pub fn g_strconcat(string1: *const c_char, ...) -> *mut c_char;
7175 pub fn g_strdelimit(
7176 string: *mut c_char,
7177 delimiters: *const c_char,
7178 new_delimiter: c_char,
7179 ) -> *mut c_char;
7180 pub fn g_strdown(string: *mut c_char) -> *mut c_char;
7181 pub fn g_strdup(str: *const c_char) -> *mut c_char;
7182 pub fn g_strdup_printf(format: *const c_char, ...) -> *mut c_char;
7183 pub fn g_strdupv(str_array: *mut *mut c_char) -> *mut *mut c_char;
7185 pub fn g_strerror(errnum: c_int) -> *const c_char;
7186 pub fn g_strescape(source: *const c_char, exceptions: *const c_char) -> *mut c_char;
7187 pub fn g_strfreev(str_array: *mut *mut c_char);
7188 pub fn g_strip_context(msgid: *const c_char, msgval: *const c_char) -> *const c_char;
7189 pub fn g_strjoin(separator: *const c_char, ...) -> *mut c_char;
7190 pub fn g_strjoinv(separator: *const c_char, str_array: *mut *mut c_char) -> *mut c_char;
7191 pub fn g_strlcat(dest: *mut c_char, src: *const c_char, dest_size: size_t) -> size_t;
7192 pub fn g_strlcpy(dest: *mut c_char, src: *const c_char, dest_size: size_t) -> size_t;
7193 pub fn g_strncasecmp(s1: *const c_char, s2: *const c_char, n: c_uint) -> c_int;
7194 pub fn g_strndup(str: *const c_char, n: size_t) -> *mut c_char;
7195 pub fn g_strnfill(length: size_t, fill_char: c_char) -> *mut c_char;
7196 pub fn g_strreverse(string: *mut c_char) -> *mut c_char;
7197 pub fn g_strrstr(haystack: *const c_char, needle: *const c_char) -> *mut c_char;
7198 pub fn g_strrstr_len(
7199 haystack: *const c_char,
7200 haystack_len: ssize_t,
7201 needle: *const c_char,
7202 ) -> *mut c_char;
7203 pub fn g_strsignal(signum: c_int) -> *const c_char;
7204 pub fn g_strsplit(
7205 string: *const c_char,
7206 delimiter: *const c_char,
7207 max_tokens: c_int,
7208 ) -> *mut *mut c_char;
7209 pub fn g_strsplit_set(
7210 string: *const c_char,
7211 delimiters: *const c_char,
7212 max_tokens: c_int,
7213 ) -> *mut *mut c_char;
7214 pub fn g_strstr_len(
7215 haystack: *const c_char,
7216 haystack_len: ssize_t,
7217 needle: *const c_char,
7218 ) -> *mut c_char;
7219 pub fn g_strtod(nptr: *const c_char, endptr: *mut *mut c_char) -> c_double;
7220 pub fn g_strup(string: *mut c_char) -> *mut c_char;
7221 pub fn g_strv_contains(strv: *const *const c_char, str: *const c_char) -> gboolean;
7222 #[cfg(feature = "v2_60")]
7223 #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
7224 pub fn g_strv_equal(strv1: *const *const c_char, strv2: *const *const c_char) -> gboolean;
7225 pub fn g_strv_get_type() -> GType;
7226 pub fn g_strv_length(str_array: *mut *mut c_char) -> c_uint;
7227 pub fn g_test_add_data_func(
7228 testpath: *const c_char,
7229 test_data: gconstpointer,
7230 test_func: GTestDataFunc,
7231 );
7232 pub fn g_test_add_data_func_full(
7233 testpath: *const c_char,
7234 test_data: gpointer,
7235 test_func: GTestDataFunc,
7236 data_free_func: GDestroyNotify,
7237 );
7238 pub fn g_test_add_func(testpath: *const c_char, test_func: GTestFunc);
7239 pub fn g_test_add_vtable(
7240 testpath: *const c_char,
7241 data_size: size_t,
7242 test_data: gconstpointer,
7243 data_setup: GTestFixtureFunc,
7244 data_test: GTestFixtureFunc,
7245 data_teardown: GTestFixtureFunc,
7246 );
7247 pub fn g_test_assert_expected_messages_internal(
7248 domain: *const c_char,
7249 file: *const c_char,
7250 line: c_int,
7251 func: *const c_char,
7252 );
7253 pub fn g_test_bug(bug_uri_snippet: *const c_char);
7254 pub fn g_test_bug_base(uri_pattern: *const c_char);
7255 pub fn g_test_build_filename(
7256 file_type: GTestFileType,
7257 first_path: *const c_char,
7258 ...
7259 ) -> *mut c_char;
7260 pub fn g_test_create_case(
7261 test_name: *const c_char,
7262 data_size: size_t,
7263 test_data: gconstpointer,
7264 data_setup: GTestFixtureFunc,
7265 data_test: GTestFixtureFunc,
7266 data_teardown: GTestFixtureFunc,
7267 ) -> *mut GTestCase;
7268 pub fn g_test_create_suite(suite_name: *const c_char) -> *mut GTestSuite;
7269 #[cfg(feature = "v2_78")]
7270 #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
7271 pub fn g_test_disable_crash_reporting();
7272 pub fn g_test_expect_message(
7273 log_domain: *const c_char,
7274 log_level: GLogLevelFlags,
7275 pattern: *const c_char,
7276 );
7277 pub fn g_test_fail();
7278 #[cfg(feature = "v2_70")]
7279 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
7280 pub fn g_test_fail_printf(format: *const c_char, ...);
7281 pub fn g_test_failed() -> gboolean;
7282 pub fn g_test_get_dir(file_type: GTestFileType) -> *const c_char;
7283 pub fn g_test_get_filename(
7284 file_type: GTestFileType,
7285 first_path: *const c_char,
7286 ...
7287 ) -> *const c_char;
7288 #[cfg(feature = "v2_68")]
7289 #[cfg_attr(docsrs, doc(cfg(feature = "v2_68")))]
7290 pub fn g_test_get_path() -> *const c_char;
7291 pub fn g_test_get_root() -> *mut GTestSuite;
7292 pub fn g_test_incomplete(msg: *const c_char);
7293 #[cfg(feature = "v2_70")]
7294 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
7295 pub fn g_test_incomplete_printf(format: *const c_char, ...);
7296 pub fn g_test_init(argc: *mut c_int, argv: *mut *mut *mut c_char, ...);
7297 pub fn g_test_log_set_fatal_handler(log_func: GTestLogFatalFunc, user_data: gpointer);
7298 pub fn g_test_log_type_name(log_type: GTestLogType) -> *const c_char;
7299 pub fn g_test_maximized_result(maximized_quantity: c_double, format: *const c_char, ...);
7300 pub fn g_test_message(format: *const c_char, ...);
7301 pub fn g_test_minimized_result(minimized_quantity: c_double, format: *const c_char, ...);
7302 pub fn g_test_queue_destroy(destroy_func: GDestroyNotify, destroy_data: gpointer);
7303 pub fn g_test_queue_free(gfree_pointer: gpointer);
7304 pub fn g_test_rand_double() -> c_double;
7305 pub fn g_test_rand_double_range(range_start: c_double, range_end: c_double) -> c_double;
7306 pub fn g_test_rand_int() -> i32;
7307 pub fn g_test_rand_int_range(begin: i32, end: i32) -> i32;
7308 pub fn g_test_run() -> c_int;
7309 pub fn g_test_run_suite(suite: *mut GTestSuite) -> c_int;
7310 pub fn g_test_set_nonfatal_assertions();
7311 pub fn g_test_skip(msg: *const c_char);
7312 #[cfg(feature = "v2_70")]
7313 #[cfg_attr(docsrs, doc(cfg(feature = "v2_70")))]
7314 pub fn g_test_skip_printf(format: *const c_char, ...);
7315 pub fn g_test_subprocess() -> gboolean;
7316 #[cfg(feature = "v2_62")]
7317 #[cfg_attr(docsrs, doc(cfg(feature = "v2_62")))]
7318 pub fn g_test_summary(summary: *const c_char);
7319 pub fn g_test_timer_elapsed() -> c_double;
7320 pub fn g_test_timer_last() -> c_double;
7321 pub fn g_test_timer_start();
7322 pub fn g_test_trap_assertions(
7323 domain: *const c_char,
7324 file: *const c_char,
7325 line: c_int,
7326 func: *const c_char,
7327 assertion_flags: u64,
7328 pattern: *const c_char,
7329 );
7330 pub fn g_test_trap_fork(usec_timeout: u64, test_trap_flags: GTestTrapFlags) -> gboolean;
7331 pub fn g_test_trap_has_passed() -> gboolean;
7332 pub fn g_test_trap_reached_timeout() -> gboolean;
7333 pub fn g_test_trap_subprocess(
7334 test_path: *const c_char,
7335 usec_timeout: u64,
7336 test_flags: GTestSubprocessFlags,
7337 );
7338 #[cfg(feature = "v2_80")]
7339 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
7340 pub fn g_test_trap_subprocess_with_envp(
7341 test_path: *const c_char,
7342 envp: *const *const c_char,
7343 usec_timeout: u64,
7344 test_flags: GTestSubprocessFlags,
7345 );
7346 pub fn g_timeout_add(interval: c_uint, function: GSourceFunc, data: gpointer) -> c_uint;
7347 pub fn g_timeout_add_full(
7348 priority: c_int,
7349 interval: c_uint,
7350 function: GSourceFunc,
7351 data: gpointer,
7352 notify: GDestroyNotify,
7353 ) -> c_uint;
7354 #[cfg(feature = "v2_74")]
7355 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
7356 pub fn g_timeout_add_once(
7357 interval: c_uint,
7358 function: GSourceOnceFunc,
7359 data: gpointer,
7360 ) -> c_uint;
7361 pub fn g_timeout_add_seconds(interval: c_uint, function: GSourceFunc, data: gpointer)
7362 -> c_uint;
7363 pub fn g_timeout_add_seconds_full(
7364 priority: c_int,
7365 interval: c_uint,
7366 function: GSourceFunc,
7367 data: gpointer,
7368 notify: GDestroyNotify,
7369 ) -> c_uint;
7370 #[cfg(feature = "v2_78")]
7371 #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
7372 pub fn g_timeout_add_seconds_once(
7373 interval: c_uint,
7374 function: GSourceOnceFunc,
7375 data: gpointer,
7376 ) -> c_uint;
7377 pub fn g_timeout_source_new(interval: c_uint) -> *mut GSource;
7378 pub fn g_timeout_source_new_seconds(interval: c_uint) -> *mut GSource;
7379 pub fn g_try_malloc(n_bytes: size_t) -> gpointer;
7380 pub fn g_try_malloc0(n_bytes: size_t) -> gpointer;
7381 pub fn g_try_malloc0_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
7382 pub fn g_try_malloc_n(n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
7383 pub fn g_try_realloc(mem: gpointer, n_bytes: size_t) -> gpointer;
7384 pub fn g_try_realloc_n(mem: gpointer, n_blocks: size_t, n_block_bytes: size_t) -> gpointer;
7385 pub fn g_ucs4_to_utf16(
7386 str: *const u32,
7387 len: c_long,
7388 items_read: *mut c_long,
7389 items_written: *mut c_long,
7390 error: *mut *mut GError,
7391 ) -> *mut u16;
7392 pub fn g_ucs4_to_utf8(
7393 str: *const u32,
7394 len: c_long,
7395 items_read: *mut c_long,
7396 items_written: *mut c_long,
7397 error: *mut *mut GError,
7398 ) -> *mut c_char;
7399 pub fn g_unichar_break_type(c: u32) -> GUnicodeBreakType;
7400 pub fn g_unichar_combining_class(uc: u32) -> c_int;
7401 pub fn g_unichar_compose(a: u32, b: u32, ch: *mut u32) -> gboolean;
7402 pub fn g_unichar_decompose(ch: u32, a: *mut u32, b: *mut u32) -> gboolean;
7403 pub fn g_unichar_digit_value(c: u32) -> c_int;
7404 pub fn g_unichar_fully_decompose(
7405 ch: u32,
7406 compat: gboolean,
7407 result: *mut u32,
7408 result_len: size_t,
7409 ) -> size_t;
7410 pub fn g_unichar_get_mirror_char(ch: u32, mirrored_ch: *mut u32) -> gboolean;
7411 pub fn g_unichar_get_script(ch: u32) -> GUnicodeScript;
7412 pub fn g_unichar_isalnum(c: u32) -> gboolean;
7413 pub fn g_unichar_isalpha(c: u32) -> gboolean;
7414 pub fn g_unichar_iscntrl(c: u32) -> gboolean;
7415 pub fn g_unichar_isdefined(c: u32) -> gboolean;
7416 pub fn g_unichar_isdigit(c: u32) -> gboolean;
7417 pub fn g_unichar_isgraph(c: u32) -> gboolean;
7418 pub fn g_unichar_islower(c: u32) -> gboolean;
7419 pub fn g_unichar_ismark(c: u32) -> gboolean;
7420 pub fn g_unichar_isprint(c: u32) -> gboolean;
7421 pub fn g_unichar_ispunct(c: u32) -> gboolean;
7422 pub fn g_unichar_isspace(c: u32) -> gboolean;
7423 pub fn g_unichar_istitle(c: u32) -> gboolean;
7424 pub fn g_unichar_isupper(c: u32) -> gboolean;
7425 pub fn g_unichar_iswide(c: u32) -> gboolean;
7426 pub fn g_unichar_iswide_cjk(c: u32) -> gboolean;
7427 pub fn g_unichar_isxdigit(c: u32) -> gboolean;
7428 pub fn g_unichar_iszerowidth(c: u32) -> gboolean;
7429 pub fn g_unichar_to_utf8(c: u32, outbuf: *mut c_char) -> c_int;
7430 pub fn g_unichar_tolower(c: u32) -> u32;
7431 pub fn g_unichar_totitle(c: u32) -> u32;
7432 pub fn g_unichar_toupper(c: u32) -> u32;
7433 pub fn g_unichar_type(c: u32) -> GUnicodeType;
7434 pub fn g_unichar_validate(ch: u32) -> gboolean;
7435 pub fn g_unichar_xdigit_value(c: u32) -> c_int;
7436 pub fn g_unicode_canonical_decomposition(ch: u32, result_len: *mut size_t) -> *mut u32;
7437 pub fn g_unicode_canonical_ordering(string: *mut u32, len: size_t);
7438 pub fn g_unix_error_quark() -> GQuark;
7439 pub fn g_unix_fd_add(
7440 fd: c_int,
7441 condition: GIOCondition,
7442 function: GUnixFDSourceFunc,
7443 user_data: gpointer,
7444 ) -> c_uint;
7445 pub fn g_unix_fd_add_full(
7446 priority: c_int,
7447 fd: c_int,
7448 condition: GIOCondition,
7449 function: GUnixFDSourceFunc,
7450 user_data: gpointer,
7451 notify: GDestroyNotify,
7452 ) -> c_uint;
7453 #[cfg(feature = "v2_88")]
7454 #[cfg_attr(docsrs, doc(cfg(feature = "v2_88")))]
7455 pub fn g_unix_fd_query_path(fd: c_int, error: *mut *mut GError) -> *mut c_char;
7456 pub fn g_unix_fd_source_new(fd: c_int, condition: GIOCondition) -> *mut GSource;
7457 #[cfg(feature = "v2_64")]
7458 #[cfg_attr(docsrs, doc(cfg(feature = "v2_64")))]
7459 #[cfg(unix)]
7460 #[cfg_attr(docsrs, doc(cfg(unix)))]
7461 pub fn g_unix_get_passwd_entry(
7462 user_name: *const c_char,
7463 error: *mut *mut GError,
7464 ) -> *mut passwd;
7465 pub fn g_unix_open_pipe(
7466 fds: *mut [c_int; 2],
7467 flags: c_int,
7468 error: *mut *mut GError,
7469 ) -> gboolean;
7470 pub fn g_unix_set_fd_nonblocking(
7471 fd: c_int,
7472 nonblock: gboolean,
7473 error: *mut *mut GError,
7474 ) -> gboolean;
7475 pub fn g_unix_signal_add(signum: c_int, handler: GSourceFunc, user_data: gpointer) -> c_uint;
7476 pub fn g_unix_signal_add_full(
7477 priority: c_int,
7478 signum: c_int,
7479 handler: GSourceFunc,
7480 user_data: gpointer,
7481 notify: GDestroyNotify,
7482 ) -> c_uint;
7483 pub fn g_unix_signal_source_new(signum: c_int) -> *mut GSource;
7484 pub fn g_unlink(filename: *const c_char) -> c_int;
7485 pub fn g_unsetenv(variable: *const c_char);
7486 pub fn g_usleep(microseconds: c_ulong);
7487 pub fn g_utf16_to_ucs4(
7488 str: *const u16,
7489 len: c_long,
7490 items_read: *mut c_long,
7491 items_written: *mut c_long,
7492 error: *mut *mut GError,
7493 ) -> *mut u32;
7494 pub fn g_utf16_to_utf8(
7495 str: *const u16,
7496 len: c_long,
7497 items_read: *mut c_long,
7498 items_written: *mut c_long,
7499 error: *mut *mut GError,
7500 ) -> *mut c_char;
7501 pub fn g_utf8_casefold(str: *const c_char, len: ssize_t) -> *mut c_char;
7502 pub fn g_utf8_collate(str1: *const c_char, str2: *const c_char) -> c_int;
7503 pub fn g_utf8_collate_key(str: *const c_char, len: ssize_t) -> *mut c_char;
7504 pub fn g_utf8_collate_key_for_filename(str: *const c_char, len: ssize_t) -> *mut c_char;
7505 pub fn g_utf8_find_next_char(p: *const c_char, end: *const c_char) -> *mut c_char;
7506 pub fn g_utf8_find_prev_char(str: *const c_char, p: *const c_char) -> *mut c_char;
7507 pub fn g_utf8_get_char(p: *const c_char) -> u32;
7508 pub fn g_utf8_get_char_validated(p: *const c_char, max_len: ssize_t) -> u32;
7509 pub fn g_utf8_make_valid(str: *const c_char, len: ssize_t) -> *mut c_char;
7510 pub fn g_utf8_normalize(str: *const c_char, len: ssize_t, mode: GNormalizeMode) -> *mut c_char;
7511 pub fn g_utf8_offset_to_pointer(str: *const c_char, offset: c_long) -> *mut c_char;
7512 pub fn g_utf8_pointer_to_offset(str: *const c_char, pos: *const c_char) -> c_long;
7513 pub fn g_utf8_prev_char(p: *const c_char) -> *mut c_char;
7514 pub fn g_utf8_strchr(p: *const c_char, len: ssize_t, c: u32) -> *mut c_char;
7515 pub fn g_utf8_strdown(str: *const c_char, len: ssize_t) -> *mut c_char;
7516 pub fn g_utf8_strlen(p: *const c_char, max: ssize_t) -> c_long;
7517 pub fn g_utf8_strncpy(dest: *mut c_char, src: *const c_char, n: size_t) -> *mut c_char;
7518 pub fn g_utf8_strrchr(p: *const c_char, len: ssize_t, c: u32) -> *mut c_char;
7519 pub fn g_utf8_strreverse(str: *const c_char, len: ssize_t) -> *mut c_char;
7520 pub fn g_utf8_strup(str: *const c_char, len: ssize_t) -> *mut c_char;
7521 pub fn g_utf8_substring(str: *const c_char, start_pos: c_long, end_pos: c_long) -> *mut c_char;
7522 pub fn g_utf8_to_ucs4(
7523 str: *const c_char,
7524 len: c_long,
7525 items_read: *mut c_long,
7526 items_written: *mut c_long,
7527 error: *mut *mut GError,
7528 ) -> *mut u32;
7529 pub fn g_utf8_to_ucs4_fast(
7530 str: *const c_char,
7531 len: c_long,
7532 items_written: *mut c_long,
7533 ) -> *mut u32;
7534 pub fn g_utf8_to_utf16(
7535 str: *const c_char,
7536 len: c_long,
7537 items_read: *mut c_long,
7538 items_written: *mut c_long,
7539 error: *mut *mut GError,
7540 ) -> *mut u16;
7541 #[cfg(feature = "v2_78")]
7542 #[cfg_attr(docsrs, doc(cfg(feature = "v2_78")))]
7543 pub fn g_utf8_truncate_middle(string: *const c_char, truncate_length: size_t) -> *mut c_char;
7544 pub fn g_utf8_validate(str: *const u8, max_len: ssize_t, end: *mut *const u8) -> gboolean;
7545 #[cfg(feature = "v2_60")]
7546 #[cfg_attr(docsrs, doc(cfg(feature = "v2_60")))]
7547 pub fn g_utf8_validate_len(str: *const u8, max_len: size_t, end: *mut *const u8) -> gboolean;
7548 pub fn g_uuid_string_is_valid(str: *const c_char) -> gboolean;
7549 pub fn g_uuid_string_random() -> *mut c_char;
7550 pub fn g_variant_get_gtype() -> GType;
7551 pub fn g_warn_message(
7557 domain: *const c_char,
7558 file: *const c_char,
7559 line: c_int,
7560 func: *const c_char,
7561 warnexpr: *const c_char,
7562 );
7563
7564}