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