glib-sys 0.8.0

FFI bindings to libglib-2.0
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

extern crate glib_sys;
extern crate shell_words;
extern crate tempdir;
use std::env;
use std::error::Error;
use std::path::Path;
use std::mem::{align_of, size_of};
use std::process::Command;
use std::str;
use glib_sys::*;

static PACKAGES: &[&str] = &["glib-2.0"];

#[derive(Clone, Debug)]
struct Compiler {
    pub args: Vec<String>,
}

impl Compiler {
    pub fn new() -> Result<Compiler, Box<Error>> {
        let mut args = get_var("CC", "cc")?;
        args.push("-Wno-deprecated-declarations".to_owned());
        // For %z support in printf when using MinGW.
        args.push("-D__USE_MINGW_ANSI_STDIO".to_owned());
        args.extend(get_var("CFLAGS", "")?);
        args.extend(get_var("CPPFLAGS", "")?);
        args.extend(pkg_config_cflags(PACKAGES)?);
        Ok(Compiler { args })
    }

    pub fn define<'a, V: Into<Option<&'a str>>>(&mut self, var: &str, val: V) {
        let arg = match val.into() {
            None => format!("-D{}", var),
            Some(val) => format!("-D{}={}", var, val),
        };
        self.args.push(arg);
    }

    pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<Error>> {
        let mut cmd = self.to_command();
        cmd.arg(src);
        cmd.arg("-o");
        cmd.arg(out);
        let status = cmd.spawn()?.wait()?;
        if !status.success() {
            return Err(format!("compilation command {:?} failed, {}",
                               &cmd, status).into());
        }
        Ok(())
    }

    fn to_command(&self) -> Command {
        let mut cmd = Command::new(&self.args[0]);
        cmd.args(&self.args[1..]);
        cmd
    }
}

fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<Error>> {
    match env::var(name) {
        Ok(value) => Ok(shell_words::split(&value)?),
        Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?),
        Err(err) => Err(format!("{} {}", name, err).into()),
    }
}

fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<Error>> {
    if packages.is_empty() {
        return Ok(Vec::new());
    }
    let mut cmd = Command::new("pkg-config");
    cmd.arg("--cflags");
    cmd.args(packages);
    let out = cmd.output()?;
    if !out.status.success() {
        return Err(format!("command {:?} returned {}",
                           &cmd, out.status).into());
    }
    let stdout = str::from_utf8(&out.stdout)?;
    Ok(shell_words::split(stdout.trim())?)
}


#[derive(Copy, Clone, Debug, Eq, PartialEq)]
struct Layout {
    size: usize,
    alignment: usize,
}

#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
struct Results {
    /// Number of successfully completed tests.
    passed: usize,
    /// Total number of failed tests (including those that failed to compile).
    failed: usize,
    /// Number of tests that failed to compile.
    failed_to_compile: usize,
}

impl Results {
    fn record_passed(&mut self) {
        self.passed += 1;
    }
    fn record_failed(&mut self) {
        self.failed += 1;
    }
    fn record_failed_to_compile(&mut self) {
        self.failed += 1;
        self.failed_to_compile += 1;
    }
    fn summary(&self) -> String {
        format!(
            "{} passed; {} failed (compilation errors: {})",
            self.passed,
            self.failed,
            self.failed_to_compile)
    }
    fn expect_total_success(&self) {
        if self.failed == 0 {
            println!("OK: {}", self.summary());
        } else {
            panic!("FAILED: {}", self.summary());
        };
    }
}

#[test]
fn cross_validate_constants_with_c() {
    let tmpdir = tempdir::TempDir::new("abi").expect("temporary directory");
    let cc = Compiler::new().expect("configured compiler");

    assert_eq!("1",
               get_c_value(tmpdir.path(), &cc, "1").expect("C constant"),
               "failed to obtain correct constant value for 1");

    let mut results : Results = Default::default();
    for (i, &(name, rust_value)) in RUST_CONSTANTS.iter().enumerate() {
        match get_c_value(tmpdir.path(), &cc, name) {
            Err(e) => {
                results.record_failed_to_compile();
                eprintln!("{}", e);
            },
            Ok(ref c_value) => {
                if rust_value == c_value {
                    results.record_passed();
                } else {
                    results.record_failed();
                    eprintln!("Constant value mismatch for {}\nRust: {:?}\nC:    {:?}",
                              name, rust_value, c_value);
                }
            }
        };
        if (i + 1) % 25 == 0 {
            println!("constants ... {}", results.summary());
        }
    }
    results.expect_total_success();
}

#[test]
fn cross_validate_layout_with_c() {
    let tmpdir = tempdir::TempDir::new("abi").expect("temporary directory");
    let cc = Compiler::new().expect("configured compiler");

    assert_eq!(Layout {size: 1, alignment: 1},
               get_c_layout(tmpdir.path(), &cc, "char").expect("C layout"),
               "failed to obtain correct layout for char type");

    let mut results : Results = Default::default();
    for (i, &(name, rust_layout)) in RUST_LAYOUTS.iter().enumerate() {
        match get_c_layout(tmpdir.path(), &cc, name) {
            Err(e) => {
                results.record_failed_to_compile();
                eprintln!("{}", e);
            },
            Ok(c_layout) => {
                if rust_layout == c_layout {
                    results.record_passed();
                } else {
                    results.record_failed();
                    eprintln!("Layout mismatch for {}\nRust: {:?}\nC:    {:?}",
                              name, rust_layout, &c_layout);
                }
            }
        };
        if (i + 1) % 25 == 0 {
            println!("layout    ... {}", results.summary());
        }
    }
    results.expect_total_success();
}

fn get_c_layout(dir: &Path, cc: &Compiler, name: &str) -> Result<Layout, Box<Error>> {
    let exe = dir.join("layout");
    let mut cc = cc.clone();
    cc.define("ABI_TYPE_NAME", name);
    cc.compile(Path::new("tests/layout.c"), &exe)?;

    let mut abi_cmd = Command::new(exe);
    let output = abi_cmd.output()?;
    if !output.status.success() {
        return Err(format!("command {:?} failed, {:?}",
                           &abi_cmd, &output).into());
    }

    let stdout = str::from_utf8(&output.stdout)?;
    let mut words = stdout.trim().split_whitespace();
    let size = words.next().unwrap().parse().unwrap();
    let alignment = words.next().unwrap().parse().unwrap();
    Ok(Layout {size, alignment})
}

fn get_c_value(dir: &Path, cc: &Compiler, name: &str) -> Result<String, Box<Error>> {
    let exe = dir.join("constant");
    let mut cc = cc.clone();
    cc.define("ABI_CONSTANT_NAME", name);
    cc.compile(Path::new("tests/constant.c"), &exe)?;

    let mut abi_cmd = Command::new(exe);
    let output = abi_cmd.output()?;
    if !output.status.success() {
        return Err(format!("command {:?} failed, {:?}",
                           &abi_cmd, &output).into());
    }

    let output = str::from_utf8(&output.stdout)?.trim();
    if !output.starts_with("###gir test###") ||
       !output.ends_with("###gir test###") {
        return Err(format!("command {:?} return invalid output, {:?}",
                           &abi_cmd, &output).into());
    }

    Ok(String::from(&output[14..(output.len() - 14)]))
}

const RUST_LAYOUTS: &[(&str, Layout)] = &[
    ("GArray", Layout {size: size_of::<GArray>(), alignment: align_of::<GArray>()}),
    ("GAsciiType", Layout {size: size_of::<GAsciiType>(), alignment: align_of::<GAsciiType>()}),
    ("GBookmarkFileError", Layout {size: size_of::<GBookmarkFileError>(), alignment: align_of::<GBookmarkFileError>()}),
    ("GByteArray", Layout {size: size_of::<GByteArray>(), alignment: align_of::<GByteArray>()}),
    ("GChecksumType", Layout {size: size_of::<GChecksumType>(), alignment: align_of::<GChecksumType>()}),
    ("GCond", Layout {size: size_of::<GCond>(), alignment: align_of::<GCond>()}),
    ("GConvertError", Layout {size: size_of::<GConvertError>(), alignment: align_of::<GConvertError>()}),
    ("GDateDMY", Layout {size: size_of::<GDateDMY>(), alignment: align_of::<GDateDMY>()}),
    ("GDateDay", Layout {size: size_of::<GDateDay>(), alignment: align_of::<GDateDay>()}),
    ("GDateMonth", Layout {size: size_of::<GDateMonth>(), alignment: align_of::<GDateMonth>()}),
    ("GDateWeekday", Layout {size: size_of::<GDateWeekday>(), alignment: align_of::<GDateWeekday>()}),
    ("GDateYear", Layout {size: size_of::<GDateYear>(), alignment: align_of::<GDateYear>()}),
    ("GDebugKey", Layout {size: size_of::<GDebugKey>(), alignment: align_of::<GDebugKey>()}),
    ("GError", Layout {size: size_of::<GError>(), alignment: align_of::<GError>()}),
    ("GErrorType", Layout {size: size_of::<GErrorType>(), alignment: align_of::<GErrorType>()}),
    ("GFileError", Layout {size: size_of::<GFileError>(), alignment: align_of::<GFileError>()}),
    ("GFileTest", Layout {size: size_of::<GFileTest>(), alignment: align_of::<GFileTest>()}),
    ("GFormatSizeFlags", Layout {size: size_of::<GFormatSizeFlags>(), alignment: align_of::<GFormatSizeFlags>()}),
    ("GHashTableIter", Layout {size: size_of::<GHashTableIter>(), alignment: align_of::<GHashTableIter>()}),
    ("GHook", Layout {size: size_of::<GHook>(), alignment: align_of::<GHook>()}),
    ("GHookFlagMask", Layout {size: size_of::<GHookFlagMask>(), alignment: align_of::<GHookFlagMask>()}),
    ("GHookList", Layout {size: size_of::<GHookList>(), alignment: align_of::<GHookList>()}),
    ("GIConv", Layout {size: size_of::<GIConv>(), alignment: align_of::<GIConv>()}),
    ("GIOChannelError", Layout {size: size_of::<GIOChannelError>(), alignment: align_of::<GIOChannelError>()}),
    ("GIOCondition", Layout {size: size_of::<GIOCondition>(), alignment: align_of::<GIOCondition>()}),
    ("GIOError", Layout {size: size_of::<GIOError>(), alignment: align_of::<GIOError>()}),
    ("GIOFlags", Layout {size: size_of::<GIOFlags>(), alignment: align_of::<GIOFlags>()}),
    ("GIOFuncs", Layout {size: size_of::<GIOFuncs>(), alignment: align_of::<GIOFuncs>()}),
    ("GIOStatus", Layout {size: size_of::<GIOStatus>(), alignment: align_of::<GIOStatus>()}),
    ("GKeyFileError", Layout {size: size_of::<GKeyFileError>(), alignment: align_of::<GKeyFileError>()}),
    ("GKeyFileFlags", Layout {size: size_of::<GKeyFileFlags>(), alignment: align_of::<GKeyFileFlags>()}),
    ("GList", Layout {size: size_of::<GList>(), alignment: align_of::<GList>()}),
    ("GLogField", Layout {size: size_of::<GLogField>(), alignment: align_of::<GLogField>()}),
    ("GLogLevelFlags", Layout {size: size_of::<GLogLevelFlags>(), alignment: align_of::<GLogLevelFlags>()}),
    ("GLogWriterOutput", Layout {size: size_of::<GLogWriterOutput>(), alignment: align_of::<GLogWriterOutput>()}),
    ("GMarkupCollectType", Layout {size: size_of::<GMarkupCollectType>(), alignment: align_of::<GMarkupCollectType>()}),
    ("GMarkupError", Layout {size: size_of::<GMarkupError>(), alignment: align_of::<GMarkupError>()}),
    ("GMarkupParseFlags", Layout {size: size_of::<GMarkupParseFlags>(), alignment: align_of::<GMarkupParseFlags>()}),
    ("GMarkupParser", Layout {size: size_of::<GMarkupParser>(), alignment: align_of::<GMarkupParser>()}),
    ("GMemVTable", Layout {size: size_of::<GMemVTable>(), alignment: align_of::<GMemVTable>()}),
    ("GMutex", Layout {size: size_of::<GMutex>(), alignment: align_of::<GMutex>()}),
    ("GNode", Layout {size: size_of::<GNode>(), alignment: align_of::<GNode>()}),
    ("GNormalizeMode", Layout {size: size_of::<GNormalizeMode>(), alignment: align_of::<GNormalizeMode>()}),
    ("GNumberParserError", Layout {size: size_of::<GNumberParserError>(), alignment: align_of::<GNumberParserError>()}),
    ("GOnce", Layout {size: size_of::<GOnce>(), alignment: align_of::<GOnce>()}),
    ("GOnceStatus", Layout {size: size_of::<GOnceStatus>(), alignment: align_of::<GOnceStatus>()}),
    ("GOptionArg", Layout {size: size_of::<GOptionArg>(), alignment: align_of::<GOptionArg>()}),
    ("GOptionEntry", Layout {size: size_of::<GOptionEntry>(), alignment: align_of::<GOptionEntry>()}),
    ("GOptionError", Layout {size: size_of::<GOptionError>(), alignment: align_of::<GOptionError>()}),
    ("GOptionFlags", Layout {size: size_of::<GOptionFlags>(), alignment: align_of::<GOptionFlags>()}),
    ("GPid", Layout {size: size_of::<GPid>(), alignment: align_of::<GPid>()}),
    ("GPollFD", Layout {size: size_of::<GPollFD>(), alignment: align_of::<GPollFD>()}),
    ("GPrivate", Layout {size: size_of::<GPrivate>(), alignment: align_of::<GPrivate>()}),
    ("GPtrArray", Layout {size: size_of::<GPtrArray>(), alignment: align_of::<GPtrArray>()}),
    ("GQuark", Layout {size: size_of::<GQuark>(), alignment: align_of::<GQuark>()}),
    ("GQueue", Layout {size: size_of::<GQueue>(), alignment: align_of::<GQueue>()}),
    ("GRWLock", Layout {size: size_of::<GRWLock>(), alignment: align_of::<GRWLock>()}),
    ("GRecMutex", Layout {size: size_of::<GRecMutex>(), alignment: align_of::<GRecMutex>()}),
    ("GRefString", Layout {size: size_of::<GRefString>(), alignment: align_of::<GRefString>()}),
    ("GRegexCompileFlags", Layout {size: size_of::<GRegexCompileFlags>(), alignment: align_of::<GRegexCompileFlags>()}),
    ("GRegexError", Layout {size: size_of::<GRegexError>(), alignment: align_of::<GRegexError>()}),
    ("GRegexMatchFlags", Layout {size: size_of::<GRegexMatchFlags>(), alignment: align_of::<GRegexMatchFlags>()}),
    ("GSList", Layout {size: size_of::<GSList>(), alignment: align_of::<GSList>()}),
    ("GScanner", Layout {size: size_of::<GScanner>(), alignment: align_of::<GScanner>()}),
    ("GSeekType", Layout {size: size_of::<GSeekType>(), alignment: align_of::<GSeekType>()}),
    ("GShellError", Layout {size: size_of::<GShellError>(), alignment: align_of::<GShellError>()}),
    ("GSliceConfig", Layout {size: size_of::<GSliceConfig>(), alignment: align_of::<GSliceConfig>()}),
    ("GSource", Layout {size: size_of::<GSource>(), alignment: align_of::<GSource>()}),
    ("GSourceCallbackFuncs", Layout {size: size_of::<GSourceCallbackFuncs>(), alignment: align_of::<GSourceCallbackFuncs>()}),
    ("GSourceFuncs", Layout {size: size_of::<GSourceFuncs>(), alignment: align_of::<GSourceFuncs>()}),
    ("GSpawnError", Layout {size: size_of::<GSpawnError>(), alignment: align_of::<GSpawnError>()}),
    ("GSpawnFlags", Layout {size: size_of::<GSpawnFlags>(), alignment: align_of::<GSpawnFlags>()}),
    ("GString", Layout {size: size_of::<GString>(), alignment: align_of::<GString>()}),
    ("GStrv", Layout {size: size_of::<GStrv>(), alignment: align_of::<GStrv>()}),
    ("GTestConfig", Layout {size: size_of::<GTestConfig>(), alignment: align_of::<GTestConfig>()}),
    ("GTestFileType", Layout {size: size_of::<GTestFileType>(), alignment: align_of::<GTestFileType>()}),
    ("GTestLogBuffer", Layout {size: size_of::<GTestLogBuffer>(), alignment: align_of::<GTestLogBuffer>()}),
    ("GTestLogMsg", Layout {size: size_of::<GTestLogMsg>(), alignment: align_of::<GTestLogMsg>()}),
    ("GTestLogType", Layout {size: size_of::<GTestLogType>(), alignment: align_of::<GTestLogType>()}),
    ("GTestResult", Layout {size: size_of::<GTestResult>(), alignment: align_of::<GTestResult>()}),
    ("GTestSubprocessFlags", Layout {size: size_of::<GTestSubprocessFlags>(), alignment: align_of::<GTestSubprocessFlags>()}),
    ("GTestTrapFlags", Layout {size: size_of::<GTestTrapFlags>(), alignment: align_of::<GTestTrapFlags>()}),
    ("GThreadError", Layout {size: size_of::<GThreadError>(), alignment: align_of::<GThreadError>()}),
    ("GThreadPool", Layout {size: size_of::<GThreadPool>(), alignment: align_of::<GThreadPool>()}),
    ("GTime", Layout {size: size_of::<GTime>(), alignment: align_of::<GTime>()}),
    ("GTimeSpan", Layout {size: size_of::<GTimeSpan>(), alignment: align_of::<GTimeSpan>()}),
    ("GTimeType", Layout {size: size_of::<GTimeType>(), alignment: align_of::<GTimeType>()}),
    ("GTimeVal", Layout {size: size_of::<GTimeVal>(), alignment: align_of::<GTimeVal>()}),
    ("GTokenType", Layout {size: size_of::<GTokenType>(), alignment: align_of::<GTokenType>()}),
    ("GTokenValue", Layout {size: size_of::<GTokenValue>(), alignment: align_of::<GTokenValue>()}),
    ("GTrashStack", Layout {size: size_of::<GTrashStack>(), alignment: align_of::<GTrashStack>()}),
    ("GTraverseFlags", Layout {size: size_of::<GTraverseFlags>(), alignment: align_of::<GTraverseFlags>()}),
    ("GTraverseType", Layout {size: size_of::<GTraverseType>(), alignment: align_of::<GTraverseType>()}),
    ("GType", Layout {size: size_of::<GType>(), alignment: align_of::<GType>()}),
    ("GUnicodeBreakType", Layout {size: size_of::<GUnicodeBreakType>(), alignment: align_of::<GUnicodeBreakType>()}),
    ("GUnicodeScript", Layout {size: size_of::<GUnicodeScript>(), alignment: align_of::<GUnicodeScript>()}),
    ("GUnicodeType", Layout {size: size_of::<GUnicodeType>(), alignment: align_of::<GUnicodeType>()}),
    ("GUserDirectory", Layout {size: size_of::<GUserDirectory>(), alignment: align_of::<GUserDirectory>()}),
    ("GVariantBuilder", Layout {size: size_of::<GVariantBuilder>(), alignment: align_of::<GVariantBuilder>()}),
    ("GVariantClass", Layout {size: size_of::<GVariantClass>(), alignment: align_of::<GVariantClass>()}),
    ("GVariantDict", Layout {size: size_of::<GVariantDict>(), alignment: align_of::<GVariantDict>()}),
    ("GVariantIter", Layout {size: size_of::<GVariantIter>(), alignment: align_of::<GVariantIter>()}),
    ("GVariantParseError", Layout {size: size_of::<GVariantParseError>(), alignment: align_of::<GVariantParseError>()}),
];

const RUST_CONSTANTS: &[(&str, &str)] = &[
    ("GLIB_SYSDEF_AF_INET", "2"),
    ("GLIB_SYSDEF_AF_INET6", "10"),
    ("GLIB_SYSDEF_AF_UNIX", "1"),
    ("GLIB_SYSDEF_MSG_DONTROUTE", "4"),
    ("GLIB_SYSDEF_MSG_OOB", "1"),
    ("GLIB_SYSDEF_MSG_PEEK", "2"),
    ("(guint) G_ASCII_ALNUM", "1"),
    ("(guint) G_ASCII_ALPHA", "2"),
    ("(guint) G_ASCII_CNTRL", "4"),
    ("(guint) G_ASCII_DIGIT", "8"),
    ("G_ASCII_DTOSTR_BUF_SIZE", "39"),
    ("(guint) G_ASCII_GRAPH", "16"),
    ("(guint) G_ASCII_LOWER", "32"),
    ("(guint) G_ASCII_PRINT", "64"),
    ("(guint) G_ASCII_PUNCT", "128"),
    ("(guint) G_ASCII_SPACE", "256"),
    ("(guint) G_ASCII_UPPER", "512"),
    ("(guint) G_ASCII_XDIGIT", "1024"),
    ("G_BIG_ENDIAN", "4321"),
    ("(gint) G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED", "2"),
    ("(gint) G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND", "7"),
    ("(gint) G_BOOKMARK_FILE_ERROR_INVALID_URI", "0"),
    ("(gint) G_BOOKMARK_FILE_ERROR_INVALID_VALUE", "1"),
    ("(gint) G_BOOKMARK_FILE_ERROR_READ", "4"),
    ("(gint) G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING", "5"),
    ("(gint) G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND", "3"),
    ("(gint) G_BOOKMARK_FILE_ERROR_WRITE", "6"),
    ("(gint) G_CHECKSUM_MD5", "0"),
    ("(gint) G_CHECKSUM_SHA1", "1"),
    ("(gint) G_CHECKSUM_SHA256", "2"),
    ("(gint) G_CHECKSUM_SHA384", "4"),
    ("(gint) G_CHECKSUM_SHA512", "3"),
    ("(gint) G_CONVERT_ERROR_BAD_URI", "4"),
    ("(gint) G_CONVERT_ERROR_EMBEDDED_NUL", "7"),
    ("(gint) G_CONVERT_ERROR_FAILED", "2"),
    ("(gint) G_CONVERT_ERROR_ILLEGAL_SEQUENCE", "1"),
    ("(gint) G_CONVERT_ERROR_NOT_ABSOLUTE_PATH", "5"),
    ("(gint) G_CONVERT_ERROR_NO_CONVERSION", "0"),
    ("(gint) G_CONVERT_ERROR_NO_MEMORY", "6"),
    ("(gint) G_CONVERT_ERROR_PARTIAL_INPUT", "3"),
    ("G_CSET_A_2_Z", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"),
    ("G_CSET_DIGITS", "0123456789"),
    ("G_CSET_a_2_z", "abcdefghijklmnopqrstuvwxyz"),
    ("G_DATALIST_FLAGS_MASK", "3"),
    ("(gint) G_DATE_APRIL", "4"),
    ("(gint) G_DATE_AUGUST", "8"),
    ("G_DATE_BAD_DAY", "0"),
    ("G_DATE_BAD_JULIAN", "0"),
    ("(gint) G_DATE_BAD_MONTH", "0"),
    ("(gint) G_DATE_BAD_WEEKDAY", "0"),
    ("G_DATE_BAD_YEAR", "0"),
    ("(gint) G_DATE_DAY", "0"),
    ("(gint) G_DATE_DECEMBER", "12"),
    ("(gint) G_DATE_FEBRUARY", "2"),
    ("(gint) G_DATE_FRIDAY", "5"),
    ("(gint) G_DATE_JANUARY", "1"),
    ("(gint) G_DATE_JULY", "7"),
    ("(gint) G_DATE_JUNE", "6"),
    ("(gint) G_DATE_MARCH", "3"),
    ("(gint) G_DATE_MAY", "5"),
    ("(gint) G_DATE_MONDAY", "1"),
    ("(gint) G_DATE_MONTH", "1"),
    ("(gint) G_DATE_NOVEMBER", "11"),
    ("(gint) G_DATE_OCTOBER", "10"),
    ("(gint) G_DATE_SATURDAY", "6"),
    ("(gint) G_DATE_SEPTEMBER", "9"),
    ("(gint) G_DATE_SUNDAY", "7"),
    ("(gint) G_DATE_THURSDAY", "4"),
    ("(gint) G_DATE_TUESDAY", "2"),
    ("(gint) G_DATE_WEDNESDAY", "3"),
    ("(gint) G_DATE_YEAR", "2"),
    ("G_E", "2.718282"),
    ("(gint) G_ERR_DIGIT_RADIX", "5"),
    ("(gint) G_ERR_FLOAT_MALFORMED", "7"),
    ("(gint) G_ERR_FLOAT_RADIX", "6"),
    ("(gint) G_ERR_NON_DIGIT_IN_CONST", "4"),
    ("(gint) G_ERR_UNEXP_EOF", "1"),
    ("(gint) G_ERR_UNEXP_EOF_IN_COMMENT", "3"),
    ("(gint) G_ERR_UNEXP_EOF_IN_STRING", "2"),
    ("(gint) G_ERR_UNKNOWN", "0"),
    ("(gint) G_FILE_ERROR_ACCES", "2"),
    ("(gint) G_FILE_ERROR_AGAIN", "19"),
    ("(gint) G_FILE_ERROR_BADF", "16"),
    ("(gint) G_FILE_ERROR_EXIST", "0"),
    ("(gint) G_FILE_ERROR_FAILED", "24"),
    ("(gint) G_FILE_ERROR_FAULT", "10"),
    ("(gint) G_FILE_ERROR_INTR", "20"),
    ("(gint) G_FILE_ERROR_INVAL", "17"),
    ("(gint) G_FILE_ERROR_IO", "21"),
    ("(gint) G_FILE_ERROR_ISDIR", "1"),
    ("(gint) G_FILE_ERROR_LOOP", "11"),
    ("(gint) G_FILE_ERROR_MFILE", "14"),
    ("(gint) G_FILE_ERROR_NAMETOOLONG", "3"),
    ("(gint) G_FILE_ERROR_NFILE", "15"),
    ("(gint) G_FILE_ERROR_NODEV", "7"),
    ("(gint) G_FILE_ERROR_NOENT", "4"),
    ("(gint) G_FILE_ERROR_NOMEM", "13"),
    ("(gint) G_FILE_ERROR_NOSPC", "12"),
    ("(gint) G_FILE_ERROR_NOSYS", "23"),
    ("(gint) G_FILE_ERROR_NOTDIR", "5"),
    ("(gint) G_FILE_ERROR_NXIO", "6"),
    ("(gint) G_FILE_ERROR_PERM", "22"),
    ("(gint) G_FILE_ERROR_PIPE", "18"),
    ("(gint) G_FILE_ERROR_ROFS", "8"),
    ("(gint) G_FILE_ERROR_TXTBSY", "9"),
    ("(guint) G_FILE_TEST_EXISTS", "16"),
    ("(guint) G_FILE_TEST_IS_DIR", "4"),
    ("(guint) G_FILE_TEST_IS_EXECUTABLE", "8"),
    ("(guint) G_FILE_TEST_IS_REGULAR", "1"),
    ("(guint) G_FILE_TEST_IS_SYMLINK", "2"),
    ("(guint) G_FORMAT_SIZE_BITS", "4"),
    ("(guint) G_FORMAT_SIZE_DEFAULT", "0"),
    ("(guint) G_FORMAT_SIZE_IEC_UNITS", "2"),
    ("(guint) G_FORMAT_SIZE_LONG_FORMAT", "1"),
    ("(guint) G_HOOK_FLAG_ACTIVE", "1"),
    ("(guint) G_HOOK_FLAG_IN_CALL", "2"),
    ("(guint) G_HOOK_FLAG_MASK", "15"),
    ("G_HOOK_FLAG_USER_SHIFT", "4"),
    ("G_IEEE754_DOUBLE_BIAS", "1023"),
    ("G_IEEE754_FLOAT_BIAS", "127"),
    ("(gint) G_IN_ORDER", "0"),
    ("(gint) G_IO_CHANNEL_ERROR_FAILED", "8"),
    ("(gint) G_IO_CHANNEL_ERROR_FBIG", "0"),
    ("(gint) G_IO_CHANNEL_ERROR_INVAL", "1"),
    ("(gint) G_IO_CHANNEL_ERROR_IO", "2"),
    ("(gint) G_IO_CHANNEL_ERROR_ISDIR", "3"),
    ("(gint) G_IO_CHANNEL_ERROR_NOSPC", "4"),
    ("(gint) G_IO_CHANNEL_ERROR_NXIO", "5"),
    ("(gint) G_IO_CHANNEL_ERROR_OVERFLOW", "6"),
    ("(gint) G_IO_CHANNEL_ERROR_PIPE", "7"),
    ("(guint) G_IO_ERR", "8"),
    ("(gint) G_IO_ERROR_AGAIN", "1"),
    ("(gint) G_IO_ERROR_INVAL", "2"),
    ("(gint) G_IO_ERROR_NONE", "0"),
    ("(gint) G_IO_ERROR_UNKNOWN", "3"),
    ("(guint) G_IO_FLAG_APPEND", "1"),
    ("(guint) G_IO_FLAG_GET_MASK", "31"),
    ("(guint) G_IO_FLAG_IS_READABLE", "4"),
    ("(guint) G_IO_FLAG_IS_SEEKABLE", "16"),
    ("(guint) G_IO_FLAG_IS_WRITABLE", "8"),
    ("(guint) G_IO_FLAG_IS_WRITEABLE", "8"),
    ("(guint) G_IO_FLAG_MASK", "31"),
    ("(guint) G_IO_FLAG_NONBLOCK", "2"),
    ("(guint) G_IO_FLAG_SET_MASK", "3"),
    ("(guint) G_IO_HUP", "16"),
    ("(guint) G_IO_IN", "1"),
    ("(guint) G_IO_NVAL", "32"),
    ("(guint) G_IO_OUT", "4"),
    ("(guint) G_IO_PRI", "2"),
    ("(gint) G_IO_STATUS_AGAIN", "3"),
    ("(gint) G_IO_STATUS_EOF", "2"),
    ("(gint) G_IO_STATUS_ERROR", "0"),
    ("(gint) G_IO_STATUS_NORMAL", "1"),
    ("G_KEY_FILE_DESKTOP_ACTION_GROUP_PREFIX", "Desktop Action"),
    ("G_KEY_FILE_DESKTOP_GROUP", "Desktop Entry"),
    ("G_KEY_FILE_DESKTOP_KEY_ACTIONS", "Actions"),
    ("G_KEY_FILE_DESKTOP_KEY_CATEGORIES", "Categories"),
    ("G_KEY_FILE_DESKTOP_KEY_COMMENT", "Comment"),
    ("G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE", "DBusActivatable"),
    ("G_KEY_FILE_DESKTOP_KEY_EXEC", "Exec"),
    ("G_KEY_FILE_DESKTOP_KEY_FULLNAME", "X-GNOME-FullName"),
    ("G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME", "GenericName"),
    ("G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN", "X-GNOME-Gettext-Domain"),
    ("G_KEY_FILE_DESKTOP_KEY_HIDDEN", "Hidden"),
    ("G_KEY_FILE_DESKTOP_KEY_ICON", "Icon"),
    ("G_KEY_FILE_DESKTOP_KEY_KEYWORDS", "Keywords"),
    ("G_KEY_FILE_DESKTOP_KEY_MIME_TYPE", "MimeType"),
    ("G_KEY_FILE_DESKTOP_KEY_NAME", "Name"),
    ("G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN", "NotShowIn"),
    ("G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY", "NoDisplay"),
    ("G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN", "OnlyShowIn"),
    ("G_KEY_FILE_DESKTOP_KEY_PATH", "Path"),
    ("G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY", "StartupNotify"),
    ("G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS", "StartupWMClass"),
    ("G_KEY_FILE_DESKTOP_KEY_TERMINAL", "Terminal"),
    ("G_KEY_FILE_DESKTOP_KEY_TRY_EXEC", "TryExec"),
    ("G_KEY_FILE_DESKTOP_KEY_TYPE", "Type"),
    ("G_KEY_FILE_DESKTOP_KEY_URL", "URL"),
    ("G_KEY_FILE_DESKTOP_KEY_VERSION", "Version"),
    ("G_KEY_FILE_DESKTOP_TYPE_APPLICATION", "Application"),
    ("G_KEY_FILE_DESKTOP_TYPE_DIRECTORY", "Directory"),
    ("G_KEY_FILE_DESKTOP_TYPE_LINK", "Link"),
    ("(gint) G_KEY_FILE_ERROR_GROUP_NOT_FOUND", "4"),
    ("(gint) G_KEY_FILE_ERROR_INVALID_VALUE", "5"),
    ("(gint) G_KEY_FILE_ERROR_KEY_NOT_FOUND", "3"),
    ("(gint) G_KEY_FILE_ERROR_NOT_FOUND", "2"),
    ("(gint) G_KEY_FILE_ERROR_PARSE", "1"),
    ("(gint) G_KEY_FILE_ERROR_UNKNOWN_ENCODING", "0"),
    ("(guint) G_KEY_FILE_KEEP_COMMENTS", "1"),
    ("(guint) G_KEY_FILE_KEEP_TRANSLATIONS", "2"),
    ("(guint) G_KEY_FILE_NONE", "0"),
    ("(gint) G_LEVEL_ORDER", "3"),
    ("G_LITTLE_ENDIAN", "1234"),
    ("G_LN10", "2.302585"),
    ("G_LN2", "0.693147"),
    ("G_LOG_2_BASE_10", "0.301030"),
    ("G_LOG_DOMAIN", "0"),
    ("G_LOG_FATAL_MASK", "5"),
    ("(guint) G_LOG_FLAG_FATAL", "2"),
    ("(guint) G_LOG_FLAG_RECURSION", "1"),
    ("(guint) G_LOG_LEVEL_CRITICAL", "8"),
    ("(guint) G_LOG_LEVEL_DEBUG", "128"),
    ("(guint) G_LOG_LEVEL_ERROR", "4"),
    ("(guint) G_LOG_LEVEL_INFO", "64"),
    ("(guint) G_LOG_LEVEL_MASK", "-4"),
    ("(guint) G_LOG_LEVEL_MESSAGE", "32"),
    ("G_LOG_LEVEL_USER_SHIFT", "8"),
    ("(guint) G_LOG_LEVEL_WARNING", "16"),
    ("(gint) G_LOG_WRITER_HANDLED", "1"),
    ("(gint) G_LOG_WRITER_UNHANDLED", "0"),
    ("(guint) G_MARKUP_COLLECT_BOOLEAN", "3"),
    ("(guint) G_MARKUP_COLLECT_INVALID", "0"),
    ("(guint) G_MARKUP_COLLECT_OPTIONAL", "65536"),
    ("(guint) G_MARKUP_COLLECT_STRDUP", "2"),
    ("(guint) G_MARKUP_COLLECT_STRING", "1"),
    ("(guint) G_MARKUP_COLLECT_TRISTATE", "4"),
    ("(guint) G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG", "1"),
    ("(gint) G_MARKUP_ERROR_BAD_UTF8", "0"),
    ("(gint) G_MARKUP_ERROR_EMPTY", "1"),
    ("(gint) G_MARKUP_ERROR_INVALID_CONTENT", "5"),
    ("(gint) G_MARKUP_ERROR_MISSING_ATTRIBUTE", "6"),
    ("(gint) G_MARKUP_ERROR_PARSE", "2"),
    ("(gint) G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE", "4"),
    ("(gint) G_MARKUP_ERROR_UNKNOWN_ELEMENT", "3"),
    ("(guint) G_MARKUP_IGNORE_QUALIFIED", "8"),
    ("(guint) G_MARKUP_PREFIX_ERROR_POSITION", "4"),
    ("(guint) G_MARKUP_TREAT_CDATA_AS_TEXT", "2"),
    ("(gint) G_NORMALIZE_ALL", "2"),
    ("(gint) G_NORMALIZE_ALL_COMPOSE", "3"),
    ("(gint) G_NORMALIZE_DEFAULT", "0"),
    ("(gint) G_NORMALIZE_DEFAULT_COMPOSE", "1"),
    ("(gint) G_NORMALIZE_NFC", "1"),
    ("(gint) G_NORMALIZE_NFD", "0"),
    ("(gint) G_NORMALIZE_NFKC", "3"),
    ("(gint) G_NORMALIZE_NFKD", "2"),
    ("(gint) G_NUMBER_PARSER_ERROR_INVALID", "0"),
    ("(gint) G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS", "1"),
    ("(gint) G_ONCE_STATUS_NOTCALLED", "0"),
    ("(gint) G_ONCE_STATUS_PROGRESS", "1"),
    ("(gint) G_ONCE_STATUS_READY", "2"),
    ("(gint) G_OPTION_ARG_CALLBACK", "3"),
    ("(gint) G_OPTION_ARG_DOUBLE", "7"),
    ("(gint) G_OPTION_ARG_FILENAME", "4"),
    ("(gint) G_OPTION_ARG_FILENAME_ARRAY", "6"),
    ("(gint) G_OPTION_ARG_INT", "2"),
    ("(gint) G_OPTION_ARG_INT64", "8"),
    ("(gint) G_OPTION_ARG_NONE", "0"),
    ("(gint) G_OPTION_ARG_STRING", "1"),
    ("(gint) G_OPTION_ARG_STRING_ARRAY", "5"),
    ("(gint) G_OPTION_ERROR_BAD_VALUE", "1"),
    ("(gint) G_OPTION_ERROR_FAILED", "2"),
    ("(gint) G_OPTION_ERROR_UNKNOWN_OPTION", "0"),
    ("(guint) G_OPTION_FLAG_FILENAME", "16"),
    ("(guint) G_OPTION_FLAG_HIDDEN", "1"),
    ("(guint) G_OPTION_FLAG_IN_MAIN", "2"),
    ("(guint) G_OPTION_FLAG_NOALIAS", "64"),
    ("(guint) G_OPTION_FLAG_NONE", "0"),
    ("(guint) G_OPTION_FLAG_NO_ARG", "8"),
    ("(guint) G_OPTION_FLAG_OPTIONAL_ARG", "32"),
    ("(guint) G_OPTION_FLAG_REVERSE", "4"),
    ("G_OPTION_REMAINING", ""),
    ("G_PDP_ENDIAN", "3412"),
    ("G_PI", "3.141593"),
    ("G_PI_2", "1.570796"),
    ("G_PI_4", "0.785398"),
    ("(gint) G_POST_ORDER", "2"),
    ("(gint) G_PRE_ORDER", "1"),
    ("G_PRIORITY_DEFAULT", "0"),
    ("G_PRIORITY_DEFAULT_IDLE", "200"),
    ("G_PRIORITY_HIGH", "-100"),
    ("G_PRIORITY_HIGH_IDLE", "100"),
    ("G_PRIORITY_LOW", "300"),
    ("(guint) G_REGEX_ANCHORED", "16"),
    ("(guint) G_REGEX_BSR_ANYCRLF", "8388608"),
    ("(guint) G_REGEX_CASELESS", "1"),
    ("(guint) G_REGEX_DOLLAR_ENDONLY", "32"),
    ("(guint) G_REGEX_DOTALL", "4"),
    ("(guint) G_REGEX_DUPNAMES", "524288"),
    ("(gint) G_REGEX_ERROR_ASSERTION_EXPECTED", "128"),
    ("(gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN", "159"),
    ("(gint) G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED", "166"),
    ("(gint) G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE", "176"),
    ("(gint) G_REGEX_ERROR_COMPILE", "0"),
    ("(gint) G_REGEX_ERROR_DEFINE_REPETION", "155"),
    ("(gint) G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME", "143"),
    ("(gint) G_REGEX_ERROR_EXPRESSION_TOO_LARGE", "120"),
    ("(gint) G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME", "165"),
    ("(gint) G_REGEX_ERROR_HEX_CODE_TOO_LARGE", "134"),
    ("(gint) G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS", "156"),
    ("(gint) G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE", "115"),
    ("(gint) G_REGEX_ERROR_INFINITE_LOOP", "140"),
    ("(gint) G_REGEX_ERROR_INTERNAL", "4"),
    ("(gint) G_REGEX_ERROR_INVALID_CONDITION", "135"),
    ("(gint) G_REGEX_ERROR_INVALID_CONTROL_CHAR", "168"),
    ("(gint) G_REGEX_ERROR_INVALID_DATA_CHARACTER", "164"),
    ("(gint) G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS", "107"),
    ("(gint) G_REGEX_ERROR_INVALID_OCTAL_VALUE", "151"),
    ("(gint) G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE", "158"),
    ("(gint) G_REGEX_ERROR_MALFORMED_CONDITION", "126"),
    ("(gint) G_REGEX_ERROR_MALFORMED_PROPERTY", "146"),
    ("(gint) G_REGEX_ERROR_MATCH", "3"),
    ("(gint) G_REGEX_ERROR_MEMORY_ERROR", "121"),
    ("(gint) G_REGEX_ERROR_MISSING_BACK_REFERENCE", "157"),
    ("(gint) G_REGEX_ERROR_MISSING_CONTROL_CHAR", "102"),
    ("(gint) G_REGEX_ERROR_MISSING_DIGIT", "163"),
    ("(gint) G_REGEX_ERROR_MISSING_NAME", "169"),
    ("(gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME", "162"),
    ("(gint) G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR", "142"),
    ("(gint) G_REGEX_ERROR_NAME_TOO_LONG", "175"),
    ("(gint) G_REGEX_ERROR_NOTHING_TO_REPEAT", "109"),
    ("(gint) G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS", "171"),
    ("(gint) G_REGEX_ERROR_NUMBER_TOO_BIG", "161"),
    ("(gint) G_REGEX_ERROR_OPTIMIZE", "1"),
    ("(gint) G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED", "131"),
    ("(gint) G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS", "113"),
    ("(gint) G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER", "104"),
    ("(gint) G_REGEX_ERROR_QUANTIFIER_TOO_BIG", "105"),
    ("(gint) G_REGEX_ERROR_RANGE_OUT_OF_ORDER", "108"),
    ("(gint) G_REGEX_ERROR_REPLACE", "2"),
    ("(gint) G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND", "136"),
    ("(gint) G_REGEX_ERROR_STRAY_BACKSLASH", "101"),
    ("(gint) G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG", "148"),
    ("(gint) G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE", "154"),
    ("(gint) G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES", "127"),
    ("(gint) G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES", "172"),
    ("(gint) G_REGEX_ERROR_TOO_MANY_SUBPATTERNS", "149"),
    ("(gint) G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB", "160"),
    ("(gint) G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME", "130"),
    ("(gint) G_REGEX_ERROR_UNKNOWN_PROPERTY", "147"),
    ("(gint) G_REGEX_ERROR_UNMATCHED_PARENTHESIS", "114"),
    ("(gint) G_REGEX_ERROR_UNRECOGNIZED_CHARACTER", "112"),
    ("(gint) G_REGEX_ERROR_UNRECOGNIZED_ESCAPE", "103"),
    ("(gint) G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS", "106"),
    ("(gint) G_REGEX_ERROR_UNTERMINATED_COMMENT", "118"),
    ("(gint) G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND", "125"),
    ("(guint) G_REGEX_EXTENDED", "8"),
    ("(guint) G_REGEX_FIRSTLINE", "262144"),
    ("(guint) G_REGEX_JAVASCRIPT_COMPAT", "33554432"),
    ("(guint) G_REGEX_MATCH_ANCHORED", "16"),
    ("(guint) G_REGEX_MATCH_BSR_ANY", "16777216"),
    ("(guint) G_REGEX_MATCH_BSR_ANYCRLF", "8388608"),
    ("(guint) G_REGEX_MATCH_NEWLINE_ANY", "4194304"),
    ("(guint) G_REGEX_MATCH_NEWLINE_ANYCRLF", "5242880"),
    ("(guint) G_REGEX_MATCH_NEWLINE_CR", "1048576"),
    ("(guint) G_REGEX_MATCH_NEWLINE_CRLF", "3145728"),
    ("(guint) G_REGEX_MATCH_NEWLINE_LF", "2097152"),
    ("(guint) G_REGEX_MATCH_NOTBOL", "128"),
    ("(guint) G_REGEX_MATCH_NOTEMPTY", "1024"),
    ("(guint) G_REGEX_MATCH_NOTEMPTY_ATSTART", "268435456"),
    ("(guint) G_REGEX_MATCH_NOTEOL", "256"),
    ("(guint) G_REGEX_MATCH_PARTIAL", "32768"),
    ("(guint) G_REGEX_MATCH_PARTIAL_HARD", "134217728"),
    ("(guint) G_REGEX_MATCH_PARTIAL_SOFT", "32768"),
    ("(guint) G_REGEX_MULTILINE", "2"),
    ("(guint) G_REGEX_NEWLINE_ANYCRLF", "5242880"),
    ("(guint) G_REGEX_NEWLINE_CR", "1048576"),
    ("(guint) G_REGEX_NEWLINE_CRLF", "3145728"),
    ("(guint) G_REGEX_NEWLINE_LF", "2097152"),
    ("(guint) G_REGEX_NO_AUTO_CAPTURE", "4096"),
    ("(guint) G_REGEX_OPTIMIZE", "8192"),
    ("(guint) G_REGEX_RAW", "2048"),
    ("(guint) G_REGEX_UNGREEDY", "512"),
    ("(gint) G_SEEK_CUR", "0"),
    ("(gint) G_SEEK_END", "2"),
    ("(gint) G_SEEK_SET", "1"),
    ("(gint) G_SHELL_ERROR_BAD_QUOTING", "0"),
    ("(gint) G_SHELL_ERROR_EMPTY_STRING", "1"),
    ("(gint) G_SHELL_ERROR_FAILED", "2"),
    ("(gint) G_SLICE_CONFIG_ALWAYS_MALLOC", "1"),
    ("(gint) G_SLICE_CONFIG_BYPASS_MAGAZINES", "2"),
    ("(gint) G_SLICE_CONFIG_CHUNK_SIZES", "5"),
    ("(gint) G_SLICE_CONFIG_COLOR_INCREMENT", "4"),
    ("(gint) G_SLICE_CONFIG_CONTENTION_COUNTER", "6"),
    ("(gint) G_SLICE_CONFIG_WORKING_SET_MSECS", "3"),
    ("G_SOURCE_CONTINUE", "1"),
    ("G_SOURCE_REMOVE", "0"),
    ("(guint) G_SPAWN_CHILD_INHERITS_STDIN", "32"),
    ("(guint) G_SPAWN_CLOEXEC_PIPES", "256"),
    ("(guint) G_SPAWN_DEFAULT", "0"),
    ("(guint) G_SPAWN_DO_NOT_REAP_CHILD", "2"),
    ("(gint) G_SPAWN_ERROR_2BIG", "5"),
    ("(gint) G_SPAWN_ERROR_ACCES", "3"),
    ("(gint) G_SPAWN_ERROR_CHDIR", "2"),
    ("(gint) G_SPAWN_ERROR_FAILED", "19"),
    ("(gint) G_SPAWN_ERROR_FORK", "0"),
    ("(gint) G_SPAWN_ERROR_INVAL", "16"),
    ("(gint) G_SPAWN_ERROR_IO", "13"),
    ("(gint) G_SPAWN_ERROR_ISDIR", "17"),
    ("(gint) G_SPAWN_ERROR_LIBBAD", "18"),
    ("(gint) G_SPAWN_ERROR_LOOP", "11"),
    ("(gint) G_SPAWN_ERROR_MFILE", "15"),
    ("(gint) G_SPAWN_ERROR_NAMETOOLONG", "7"),
    ("(gint) G_SPAWN_ERROR_NFILE", "14"),
    ("(gint) G_SPAWN_ERROR_NOENT", "8"),
    ("(gint) G_SPAWN_ERROR_NOEXEC", "6"),
    ("(gint) G_SPAWN_ERROR_NOMEM", "9"),
    ("(gint) G_SPAWN_ERROR_NOTDIR", "10"),
    ("(gint) G_SPAWN_ERROR_PERM", "4"),
    ("(gint) G_SPAWN_ERROR_READ", "1"),
    ("(gint) G_SPAWN_ERROR_TOO_BIG", "5"),
    ("(gint) G_SPAWN_ERROR_TXTBUSY", "12"),
    ("(guint) G_SPAWN_FILE_AND_ARGV_ZERO", "64"),
    ("(guint) G_SPAWN_LEAVE_DESCRIPTORS_OPEN", "1"),
    ("(guint) G_SPAWN_SEARCH_PATH", "4"),
    ("(guint) G_SPAWN_SEARCH_PATH_FROM_ENVP", "128"),
    ("(guint) G_SPAWN_STDERR_TO_DEV_NULL", "16"),
    ("(guint) G_SPAWN_STDOUT_TO_DEV_NULL", "8"),
    ("G_SQRT2", "1.414214"),
    ("G_STR_DELIMITERS", "_-|> <."),
    ("(gint) G_TEST_BUILT", "1"),
    ("(gint) G_TEST_DIST", "0"),
    ("(gint) G_TEST_LOG_ERROR", "1"),
    ("(gint) G_TEST_LOG_LIST_CASE", "3"),
    ("(gint) G_TEST_LOG_MAX_RESULT", "8"),
    ("(gint) G_TEST_LOG_MESSAGE", "9"),
    ("(gint) G_TEST_LOG_MIN_RESULT", "7"),
    ("(gint) G_TEST_LOG_NONE", "0"),
    ("(gint) G_TEST_LOG_SKIP_CASE", "4"),
    ("(gint) G_TEST_LOG_START_BINARY", "2"),
    ("(gint) G_TEST_LOG_START_CASE", "5"),
    ("(gint) G_TEST_LOG_START_SUITE", "10"),
    ("(gint) G_TEST_LOG_STOP_CASE", "6"),
    ("(gint) G_TEST_LOG_STOP_SUITE", "11"),
    ("(gint) G_TEST_RUN_FAILURE", "2"),
    ("(gint) G_TEST_RUN_INCOMPLETE", "3"),
    ("(gint) G_TEST_RUN_SKIPPED", "1"),
    ("(gint) G_TEST_RUN_SUCCESS", "0"),
    ("(guint) G_TEST_SUBPROCESS_INHERIT_STDERR", "4"),
    ("(guint) G_TEST_SUBPROCESS_INHERIT_STDIN", "1"),
    ("(guint) G_TEST_SUBPROCESS_INHERIT_STDOUT", "2"),
    ("(guint) G_TEST_TRAP_INHERIT_STDIN", "512"),
    ("(guint) G_TEST_TRAP_SILENCE_STDERR", "256"),
    ("(guint) G_TEST_TRAP_SILENCE_STDOUT", "128"),
    ("(gint) G_THREAD_ERROR_AGAIN", "0"),
    ("G_TIME_SPAN_DAY", "86400000000"),
    ("G_TIME_SPAN_HOUR", "3600000000"),
    ("G_TIME_SPAN_MILLISECOND", "1000"),
    ("G_TIME_SPAN_MINUTE", "60000000"),
    ("G_TIME_SPAN_SECOND", "1000000"),
    ("(gint) G_TIME_TYPE_DAYLIGHT", "1"),
    ("(gint) G_TIME_TYPE_STANDARD", "0"),
    ("(gint) G_TIME_TYPE_UNIVERSAL", "2"),
    ("(gint) G_TOKEN_BINARY", "259"),
    ("(gint) G_TOKEN_CHAR", "258"),
    ("(gint) G_TOKEN_COMMA", "44"),
    ("(gint) G_TOKEN_COMMENT_MULTI", "269"),
    ("(gint) G_TOKEN_COMMENT_SINGLE", "268"),
    ("(gint) G_TOKEN_EOF", "0"),
    ("(gint) G_TOKEN_EQUAL_SIGN", "61"),
    ("(gint) G_TOKEN_ERROR", "257"),
    ("(gint) G_TOKEN_FLOAT", "263"),
    ("(gint) G_TOKEN_HEX", "262"),
    ("(gint) G_TOKEN_IDENTIFIER", "266"),
    ("(gint) G_TOKEN_IDENTIFIER_NULL", "267"),
    ("(gint) G_TOKEN_INT", "261"),
    ("(gint) G_TOKEN_LEFT_BRACE", "91"),
    ("(gint) G_TOKEN_LEFT_CURLY", "123"),
    ("(gint) G_TOKEN_LEFT_PAREN", "40"),
    ("(gint) G_TOKEN_NONE", "256"),
    ("(gint) G_TOKEN_OCTAL", "260"),
    ("(gint) G_TOKEN_RIGHT_BRACE", "93"),
    ("(gint) G_TOKEN_RIGHT_CURLY", "125"),
    ("(gint) G_TOKEN_RIGHT_PAREN", "41"),
    ("(gint) G_TOKEN_STRING", "264"),
    ("(gint) G_TOKEN_SYMBOL", "265"),
    ("(guint) G_TRAVERSE_ALL", "3"),
    ("(guint) G_TRAVERSE_LEAFS", "1"),
    ("(guint) G_TRAVERSE_LEAVES", "1"),
    ("(guint) G_TRAVERSE_MASK", "3"),
    ("(guint) G_TRAVERSE_NON_LEAFS", "2"),
    ("(guint) G_TRAVERSE_NON_LEAVES", "2"),
    ("G_UNICHAR_MAX_DECOMPOSITION_LENGTH", "18"),
    ("(gint) G_UNICODE_BREAK_AFTER", "10"),
    ("(gint) G_UNICODE_BREAK_ALPHABETIC", "23"),
    ("(gint) G_UNICODE_BREAK_AMBIGUOUS", "27"),
    ("(gint) G_UNICODE_BREAK_BEFORE", "11"),
    ("(gint) G_UNICODE_BREAK_BEFORE_AND_AFTER", "12"),
    ("(gint) G_UNICODE_BREAK_CARRIAGE_RETURN", "1"),
    ("(gint) G_UNICODE_BREAK_CLOSE_PARANTHESIS", "36"),
    ("(gint) G_UNICODE_BREAK_CLOSE_PUNCTUATION", "16"),
    ("(gint) G_UNICODE_BREAK_COMBINING_MARK", "3"),
    ("(gint) G_UNICODE_BREAK_COMPLEX_CONTEXT", "26"),
    ("(gint) G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER", "37"),
    ("(gint) G_UNICODE_BREAK_CONTINGENT", "8"),
    ("(gint) G_UNICODE_BREAK_EMOJI_BASE", "40"),
    ("(gint) G_UNICODE_BREAK_EMOJI_MODIFIER", "41"),
    ("(gint) G_UNICODE_BREAK_EXCLAMATION", "18"),
    ("(gint) G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE", "35"),
    ("(gint) G_UNICODE_BREAK_HANGUL_LV_SYLLABLE", "34"),
    ("(gint) G_UNICODE_BREAK_HANGUL_L_JAMO", "31"),
    ("(gint) G_UNICODE_BREAK_HANGUL_T_JAMO", "33"),
    ("(gint) G_UNICODE_BREAK_HANGUL_V_JAMO", "32"),
    ("(gint) G_UNICODE_BREAK_HEBREW_LETTER", "38"),
    ("(gint) G_UNICODE_BREAK_HYPHEN", "13"),
    ("(gint) G_UNICODE_BREAK_IDEOGRAPHIC", "19"),
    ("(gint) G_UNICODE_BREAK_INFIX_SEPARATOR", "21"),
    ("(gint) G_UNICODE_BREAK_INSEPARABLE", "6"),
    ("(gint) G_UNICODE_BREAK_LINE_FEED", "2"),
    ("(gint) G_UNICODE_BREAK_MANDATORY", "0"),
    ("(gint) G_UNICODE_BREAK_NEXT_LINE", "29"),
    ("(gint) G_UNICODE_BREAK_NON_BREAKING_GLUE", "7"),
    ("(gint) G_UNICODE_BREAK_NON_STARTER", "14"),
    ("(gint) G_UNICODE_BREAK_NUMERIC", "20"),
    ("(gint) G_UNICODE_BREAK_OPEN_PUNCTUATION", "15"),
    ("(gint) G_UNICODE_BREAK_POSTFIX", "25"),
    ("(gint) G_UNICODE_BREAK_PREFIX", "24"),
    ("(gint) G_UNICODE_BREAK_QUOTATION", "17"),
    ("(gint) G_UNICODE_BREAK_REGIONAL_INDICATOR", "39"),
    ("(gint) G_UNICODE_BREAK_SPACE", "9"),
    ("(gint) G_UNICODE_BREAK_SURROGATE", "4"),
    ("(gint) G_UNICODE_BREAK_SYMBOL", "22"),
    ("(gint) G_UNICODE_BREAK_UNKNOWN", "28"),
    ("(gint) G_UNICODE_BREAK_WORD_JOINER", "30"),
    ("(gint) G_UNICODE_BREAK_ZERO_WIDTH_JOINER", "42"),
    ("(gint) G_UNICODE_BREAK_ZERO_WIDTH_SPACE", "5"),
    ("(gint) G_UNICODE_CLOSE_PUNCTUATION", "18"),
    ("(gint) G_UNICODE_CONNECT_PUNCTUATION", "16"),
    ("(gint) G_UNICODE_CONTROL", "0"),
    ("(gint) G_UNICODE_CURRENCY_SYMBOL", "23"),
    ("(gint) G_UNICODE_DASH_PUNCTUATION", "17"),
    ("(gint) G_UNICODE_DECIMAL_NUMBER", "13"),
    ("(gint) G_UNICODE_ENCLOSING_MARK", "11"),
    ("(gint) G_UNICODE_FINAL_PUNCTUATION", "19"),
    ("(gint) G_UNICODE_FORMAT", "1"),
    ("(gint) G_UNICODE_INITIAL_PUNCTUATION", "20"),
    ("(gint) G_UNICODE_LETTER_NUMBER", "14"),
    ("(gint) G_UNICODE_LINE_SEPARATOR", "27"),
    ("(gint) G_UNICODE_LOWERCASE_LETTER", "5"),
    ("(gint) G_UNICODE_MATH_SYMBOL", "25"),
    ("(gint) G_UNICODE_MODIFIER_LETTER", "6"),
    ("(gint) G_UNICODE_MODIFIER_SYMBOL", "24"),
    ("(gint) G_UNICODE_NON_SPACING_MARK", "12"),
    ("(gint) G_UNICODE_OPEN_PUNCTUATION", "22"),
    ("(gint) G_UNICODE_OTHER_LETTER", "7"),
    ("(gint) G_UNICODE_OTHER_NUMBER", "15"),
    ("(gint) G_UNICODE_OTHER_PUNCTUATION", "21"),
    ("(gint) G_UNICODE_OTHER_SYMBOL", "26"),
    ("(gint) G_UNICODE_PARAGRAPH_SEPARATOR", "28"),
    ("(gint) G_UNICODE_PRIVATE_USE", "3"),
    ("(gint) G_UNICODE_SCRIPT_ADLAM", "132"),
    ("(gint) G_UNICODE_SCRIPT_AHOM", "126"),
    ("(gint) G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS", "127"),
    ("(gint) G_UNICODE_SCRIPT_ARABIC", "2"),
    ("(gint) G_UNICODE_SCRIPT_ARMENIAN", "3"),
    ("(gint) G_UNICODE_SCRIPT_AVESTAN", "78"),
    ("(gint) G_UNICODE_SCRIPT_BALINESE", "62"),
    ("(gint) G_UNICODE_SCRIPT_BAMUM", "79"),
    ("(gint) G_UNICODE_SCRIPT_BASSA_VAH", "103"),
    ("(gint) G_UNICODE_SCRIPT_BATAK", "93"),
    ("(gint) G_UNICODE_SCRIPT_BENGALI", "4"),
    ("(gint) G_UNICODE_SCRIPT_BHAIKSUKI", "133"),
    ("(gint) G_UNICODE_SCRIPT_BOPOMOFO", "5"),
    ("(gint) G_UNICODE_SCRIPT_BRAHMI", "94"),
    ("(gint) G_UNICODE_SCRIPT_BRAILLE", "46"),
    ("(gint) G_UNICODE_SCRIPT_BUGINESE", "55"),
    ("(gint) G_UNICODE_SCRIPT_BUHID", "44"),
    ("(gint) G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL", "40"),
    ("(gint) G_UNICODE_SCRIPT_CARIAN", "75"),
    ("(gint) G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN", "104"),
    ("(gint) G_UNICODE_SCRIPT_CHAKMA", "96"),
    ("(gint) G_UNICODE_SCRIPT_CHAM", "72"),
    ("(gint) G_UNICODE_SCRIPT_CHEROKEE", "6"),
    ("(gint) G_UNICODE_SCRIPT_COMMON", "0"),
    ("(gint) G_UNICODE_SCRIPT_COPTIC", "7"),
    ("(gint) G_UNICODE_SCRIPT_CUNEIFORM", "63"),
    ("(gint) G_UNICODE_SCRIPT_CYPRIOT", "47"),
    ("(gint) G_UNICODE_SCRIPT_CYRILLIC", "8"),
    ("(gint) G_UNICODE_SCRIPT_DESERET", "9"),
    ("(gint) G_UNICODE_SCRIPT_DEVANAGARI", "10"),
    ("(gint) G_UNICODE_SCRIPT_DOGRA", "142"),
    ("(gint) G_UNICODE_SCRIPT_DUPLOYAN", "105"),
    ("(gint) G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS", "80"),
    ("(gint) G_UNICODE_SCRIPT_ELBASAN", "106"),
    ("(gint) G_UNICODE_SCRIPT_ETHIOPIC", "11"),
    ("(gint) G_UNICODE_SCRIPT_GEORGIAN", "12"),
    ("(gint) G_UNICODE_SCRIPT_GLAGOLITIC", "56"),
    ("(gint) G_UNICODE_SCRIPT_GOTHIC", "13"),
    ("(gint) G_UNICODE_SCRIPT_GRANTHA", "107"),
    ("(gint) G_UNICODE_SCRIPT_GREEK", "14"),
    ("(gint) G_UNICODE_SCRIPT_GUJARATI", "15"),
    ("(gint) G_UNICODE_SCRIPT_GUNJALA_GONDI", "143"),
    ("(gint) G_UNICODE_SCRIPT_GURMUKHI", "16"),
    ("(gint) G_UNICODE_SCRIPT_HAN", "17"),
    ("(gint) G_UNICODE_SCRIPT_HANGUL", "18"),
    ("(gint) G_UNICODE_SCRIPT_HANIFI_ROHINGYA", "144"),
    ("(gint) G_UNICODE_SCRIPT_HANUNOO", "43"),
    ("(gint) G_UNICODE_SCRIPT_HATRAN", "128"),
    ("(gint) G_UNICODE_SCRIPT_HEBREW", "19"),
    ("(gint) G_UNICODE_SCRIPT_HIRAGANA", "20"),
    ("(gint) G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC", "81"),
    ("(gint) G_UNICODE_SCRIPT_INHERITED", "1"),
    ("(gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI", "82"),
    ("(gint) G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN", "83"),
    ("(gint) G_UNICODE_SCRIPT_INVALID_CODE", "-1"),
    ("(gint) G_UNICODE_SCRIPT_JAVANESE", "84"),
    ("(gint) G_UNICODE_SCRIPT_KAITHI", "85"),
    ("(gint) G_UNICODE_SCRIPT_KANNADA", "21"),
    ("(gint) G_UNICODE_SCRIPT_KATAKANA", "22"),
    ("(gint) G_UNICODE_SCRIPT_KAYAH_LI", "67"),
    ("(gint) G_UNICODE_SCRIPT_KHAROSHTHI", "60"),
    ("(gint) G_UNICODE_SCRIPT_KHMER", "23"),
    ("(gint) G_UNICODE_SCRIPT_KHOJKI", "108"),
    ("(gint) G_UNICODE_SCRIPT_KHUDAWADI", "109"),
    ("(gint) G_UNICODE_SCRIPT_LAO", "24"),
    ("(gint) G_UNICODE_SCRIPT_LATIN", "25"),
    ("(gint) G_UNICODE_SCRIPT_LEPCHA", "68"),
    ("(gint) G_UNICODE_SCRIPT_LIMBU", "48"),
    ("(gint) G_UNICODE_SCRIPT_LINEAR_A", "110"),
    ("(gint) G_UNICODE_SCRIPT_LINEAR_B", "51"),
    ("(gint) G_UNICODE_SCRIPT_LISU", "86"),
    ("(gint) G_UNICODE_SCRIPT_LYCIAN", "76"),
    ("(gint) G_UNICODE_SCRIPT_LYDIAN", "77"),
    ("(gint) G_UNICODE_SCRIPT_MAHAJANI", "111"),
    ("(gint) G_UNICODE_SCRIPT_MAKASAR", "145"),
    ("(gint) G_UNICODE_SCRIPT_MALAYALAM", "26"),
    ("(gint) G_UNICODE_SCRIPT_MANDAIC", "95"),
    ("(gint) G_UNICODE_SCRIPT_MANICHAEAN", "112"),
    ("(gint) G_UNICODE_SCRIPT_MARCHEN", "134"),
    ("(gint) G_UNICODE_SCRIPT_MASARAM_GONDI", "138"),
    ("(gint) G_UNICODE_SCRIPT_MEDEFAIDRIN", "146"),
    ("(gint) G_UNICODE_SCRIPT_MEETEI_MAYEK", "87"),
    ("(gint) G_UNICODE_SCRIPT_MENDE_KIKAKUI", "113"),
    ("(gint) G_UNICODE_SCRIPT_MEROITIC_CURSIVE", "97"),
    ("(gint) G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS", "98"),
    ("(gint) G_UNICODE_SCRIPT_MIAO", "99"),
    ("(gint) G_UNICODE_SCRIPT_MODI", "114"),
    ("(gint) G_UNICODE_SCRIPT_MONGOLIAN", "27"),
    ("(gint) G_UNICODE_SCRIPT_MRO", "115"),
    ("(gint) G_UNICODE_SCRIPT_MULTANI", "129"),
    ("(gint) G_UNICODE_SCRIPT_MYANMAR", "28"),
    ("(gint) G_UNICODE_SCRIPT_NABATAEAN", "116"),
    ("(gint) G_UNICODE_SCRIPT_NEWA", "135"),
    ("(gint) G_UNICODE_SCRIPT_NEW_TAI_LUE", "54"),
    ("(gint) G_UNICODE_SCRIPT_NKO", "66"),
    ("(gint) G_UNICODE_SCRIPT_NUSHU", "139"),
    ("(gint) G_UNICODE_SCRIPT_OGHAM", "29"),
    ("(gint) G_UNICODE_SCRIPT_OLD_HUNGARIAN", "130"),
    ("(gint) G_UNICODE_SCRIPT_OLD_ITALIC", "30"),
    ("(gint) G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN", "117"),
    ("(gint) G_UNICODE_SCRIPT_OLD_PERMIC", "118"),
    ("(gint) G_UNICODE_SCRIPT_OLD_PERSIAN", "59"),
    ("(gint) G_UNICODE_SCRIPT_OLD_SOGDIAN", "147"),
    ("(gint) G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN", "88"),
    ("(gint) G_UNICODE_SCRIPT_OLD_TURKIC", "89"),
    ("(gint) G_UNICODE_SCRIPT_OL_CHIKI", "73"),
    ("(gint) G_UNICODE_SCRIPT_ORIYA", "31"),
    ("(gint) G_UNICODE_SCRIPT_OSAGE", "136"),
    ("(gint) G_UNICODE_SCRIPT_OSMANYA", "49"),
    ("(gint) G_UNICODE_SCRIPT_PAHAWH_HMONG", "119"),
    ("(gint) G_UNICODE_SCRIPT_PALMYRENE", "120"),
    ("(gint) G_UNICODE_SCRIPT_PAU_CIN_HAU", "121"),
    ("(gint) G_UNICODE_SCRIPT_PHAGS_PA", "65"),
    ("(gint) G_UNICODE_SCRIPT_PHOENICIAN", "64"),
    ("(gint) G_UNICODE_SCRIPT_PSALTER_PAHLAVI", "122"),
    ("(gint) G_UNICODE_SCRIPT_REJANG", "69"),
    ("(gint) G_UNICODE_SCRIPT_RUNIC", "32"),
    ("(gint) G_UNICODE_SCRIPT_SAMARITAN", "90"),
    ("(gint) G_UNICODE_SCRIPT_SAURASHTRA", "71"),
    ("(gint) G_UNICODE_SCRIPT_SHARADA", "100"),
    ("(gint) G_UNICODE_SCRIPT_SHAVIAN", "50"),
    ("(gint) G_UNICODE_SCRIPT_SIDDHAM", "123"),
    ("(gint) G_UNICODE_SCRIPT_SIGNWRITING", "131"),
    ("(gint) G_UNICODE_SCRIPT_SINHALA", "33"),
    ("(gint) G_UNICODE_SCRIPT_SOGDIAN", "148"),
    ("(gint) G_UNICODE_SCRIPT_SORA_SOMPENG", "101"),
    ("(gint) G_UNICODE_SCRIPT_SOYOMBO", "140"),
    ("(gint) G_UNICODE_SCRIPT_SUNDANESE", "70"),
    ("(gint) G_UNICODE_SCRIPT_SYLOTI_NAGRI", "58"),
    ("(gint) G_UNICODE_SCRIPT_SYRIAC", "34"),
    ("(gint) G_UNICODE_SCRIPT_TAGALOG", "42"),
    ("(gint) G_UNICODE_SCRIPT_TAGBANWA", "45"),
    ("(gint) G_UNICODE_SCRIPT_TAI_LE", "52"),
    ("(gint) G_UNICODE_SCRIPT_TAI_THAM", "91"),
    ("(gint) G_UNICODE_SCRIPT_TAI_VIET", "92"),
    ("(gint) G_UNICODE_SCRIPT_TAKRI", "102"),
    ("(gint) G_UNICODE_SCRIPT_TAMIL", "35"),
    ("(gint) G_UNICODE_SCRIPT_TANGUT", "137"),
    ("(gint) G_UNICODE_SCRIPT_TELUGU", "36"),
    ("(gint) G_UNICODE_SCRIPT_THAANA", "37"),
    ("(gint) G_UNICODE_SCRIPT_THAI", "38"),
    ("(gint) G_UNICODE_SCRIPT_TIBETAN", "39"),
    ("(gint) G_UNICODE_SCRIPT_TIFINAGH", "57"),
    ("(gint) G_UNICODE_SCRIPT_TIRHUTA", "124"),
    ("(gint) G_UNICODE_SCRIPT_UGARITIC", "53"),
    ("(gint) G_UNICODE_SCRIPT_UNKNOWN", "61"),
    ("(gint) G_UNICODE_SCRIPT_VAI", "74"),
    ("(gint) G_UNICODE_SCRIPT_WARANG_CITI", "125"),
    ("(gint) G_UNICODE_SCRIPT_YI", "41"),
    ("(gint) G_UNICODE_SCRIPT_ZANABAZAR_SQUARE", "141"),
    ("(gint) G_UNICODE_SPACE_SEPARATOR", "29"),
    ("(gint) G_UNICODE_SPACING_MARK", "10"),
    ("(gint) G_UNICODE_SURROGATE", "4"),
    ("(gint) G_UNICODE_TITLECASE_LETTER", "8"),
    ("(gint) G_UNICODE_UNASSIGNED", "2"),
    ("(gint) G_UNICODE_UPPERCASE_LETTER", "9"),
    ("G_URI_RESERVED_CHARS_GENERIC_DELIMITERS", ":/?#[]@"),
    ("G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS", "!$&'()*+,;="),
    ("G_USEC_PER_SEC", "1000000"),
    ("(gint) G_USER_DIRECTORY_DESKTOP", "0"),
    ("(gint) G_USER_DIRECTORY_DOCUMENTS", "1"),
    ("(gint) G_USER_DIRECTORY_DOWNLOAD", "2"),
    ("(gint) G_USER_DIRECTORY_MUSIC", "3"),
    ("(gint) G_USER_DIRECTORY_PICTURES", "4"),
    ("(gint) G_USER_DIRECTORY_PUBLIC_SHARE", "5"),
    ("(gint) G_USER_DIRECTORY_TEMPLATES", "6"),
    ("(gint) G_USER_DIRECTORY_VIDEOS", "7"),
    ("(gint) G_USER_N_DIRECTORIES", "8"),
    ("(gint) G_VARIANT_CLASS_ARRAY", "97"),
    ("(gint) G_VARIANT_CLASS_BOOLEAN", "98"),
    ("(gint) G_VARIANT_CLASS_BYTE", "121"),
    ("(gint) G_VARIANT_CLASS_DICT_ENTRY", "123"),
    ("(gint) G_VARIANT_CLASS_DOUBLE", "100"),
    ("(gint) G_VARIANT_CLASS_HANDLE", "104"),
    ("(gint) G_VARIANT_CLASS_INT16", "110"),
    ("(gint) G_VARIANT_CLASS_INT32", "105"),
    ("(gint) G_VARIANT_CLASS_INT64", "120"),
    ("(gint) G_VARIANT_CLASS_MAYBE", "109"),
    ("(gint) G_VARIANT_CLASS_OBJECT_PATH", "111"),
    ("(gint) G_VARIANT_CLASS_SIGNATURE", "103"),
    ("(gint) G_VARIANT_CLASS_STRING", "115"),
    ("(gint) G_VARIANT_CLASS_TUPLE", "40"),
    ("(gint) G_VARIANT_CLASS_UINT16", "113"),
    ("(gint) G_VARIANT_CLASS_UINT32", "117"),
    ("(gint) G_VARIANT_CLASS_UINT64", "116"),
    ("(gint) G_VARIANT_CLASS_VARIANT", "118"),
    ("(gint) G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED", "1"),
    ("(gint) G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE", "2"),
    ("(gint) G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED", "3"),
    ("(gint) G_VARIANT_PARSE_ERROR_FAILED", "0"),
    ("(gint) G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END", "4"),
    ("(gint) G_VARIANT_PARSE_ERROR_INVALID_CHARACTER", "5"),
    ("(gint) G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING", "6"),
    ("(gint) G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH", "7"),
    ("(gint) G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE", "8"),
    ("(gint) G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING", "9"),
    ("(gint) G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE", "10"),
    ("(gint) G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE", "11"),
    ("(gint) G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG", "12"),
    ("(gint) G_VARIANT_PARSE_ERROR_TYPE_ERROR", "13"),
    ("(gint) G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN", "14"),
    ("(gint) G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD", "15"),
    ("(gint) G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT", "16"),
    ("(gint) G_VARIANT_PARSE_ERROR_VALUE_EXPECTED", "17"),
    ("G_WIN32_MSG_HANDLE", "19981206"),
];