gio-sys 0.7.0

FFI bindings to libgio-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
// 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 gio_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 gio_sys::*;

static PACKAGES: &[&str] = &["gio-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());
    }

    Ok(str::from_utf8(&output.stdout)?.trim().to_owned())
}

const RUST_LAYOUTS: &[(&str, Layout)] = &[
    ("GActionEntry", Layout {size: size_of::<GActionEntry>(), alignment: align_of::<GActionEntry>()}),
    ("GActionGroupInterface", Layout {size: size_of::<GActionGroupInterface>(), alignment: align_of::<GActionGroupInterface>()}),
    ("GActionInterface", Layout {size: size_of::<GActionInterface>(), alignment: align_of::<GActionInterface>()}),
    ("GActionMapInterface", Layout {size: size_of::<GActionMapInterface>(), alignment: align_of::<GActionMapInterface>()}),
    ("GAppInfoCreateFlags", Layout {size: size_of::<GAppInfoCreateFlags>(), alignment: align_of::<GAppInfoCreateFlags>()}),
    ("GAppInfoIface", Layout {size: size_of::<GAppInfoIface>(), alignment: align_of::<GAppInfoIface>()}),
    ("GAppLaunchContext", Layout {size: size_of::<GAppLaunchContext>(), alignment: align_of::<GAppLaunchContext>()}),
    ("GAppLaunchContextClass", Layout {size: size_of::<GAppLaunchContextClass>(), alignment: align_of::<GAppLaunchContextClass>()}),
    ("GApplication", Layout {size: size_of::<GApplication>(), alignment: align_of::<GApplication>()}),
    ("GApplicationClass", Layout {size: size_of::<GApplicationClass>(), alignment: align_of::<GApplicationClass>()}),
    ("GApplicationCommandLine", Layout {size: size_of::<GApplicationCommandLine>(), alignment: align_of::<GApplicationCommandLine>()}),
    ("GApplicationCommandLineClass", Layout {size: size_of::<GApplicationCommandLineClass>(), alignment: align_of::<GApplicationCommandLineClass>()}),
    ("GApplicationFlags", Layout {size: size_of::<GApplicationFlags>(), alignment: align_of::<GApplicationFlags>()}),
    ("GAskPasswordFlags", Layout {size: size_of::<GAskPasswordFlags>(), alignment: align_of::<GAskPasswordFlags>()}),
    ("GAsyncInitableIface", Layout {size: size_of::<GAsyncInitableIface>(), alignment: align_of::<GAsyncInitableIface>()}),
    ("GAsyncResultIface", Layout {size: size_of::<GAsyncResultIface>(), alignment: align_of::<GAsyncResultIface>()}),
    ("GBufferedInputStream", Layout {size: size_of::<GBufferedInputStream>(), alignment: align_of::<GBufferedInputStream>()}),
    ("GBufferedInputStreamClass", Layout {size: size_of::<GBufferedInputStreamClass>(), alignment: align_of::<GBufferedInputStreamClass>()}),
    ("GBufferedOutputStream", Layout {size: size_of::<GBufferedOutputStream>(), alignment: align_of::<GBufferedOutputStream>()}),
    ("GBufferedOutputStreamClass", Layout {size: size_of::<GBufferedOutputStreamClass>(), alignment: align_of::<GBufferedOutputStreamClass>()}),
    ("GBusNameOwnerFlags", Layout {size: size_of::<GBusNameOwnerFlags>(), alignment: align_of::<GBusNameOwnerFlags>()}),
    ("GBusNameWatcherFlags", Layout {size: size_of::<GBusNameWatcherFlags>(), alignment: align_of::<GBusNameWatcherFlags>()}),
    ("GBusType", Layout {size: size_of::<GBusType>(), alignment: align_of::<GBusType>()}),
    ("GCancellable", Layout {size: size_of::<GCancellable>(), alignment: align_of::<GCancellable>()}),
    ("GCancellableClass", Layout {size: size_of::<GCancellableClass>(), alignment: align_of::<GCancellableClass>()}),
    ("GCharsetConverterClass", Layout {size: size_of::<GCharsetConverterClass>(), alignment: align_of::<GCharsetConverterClass>()}),
    ("GConverterFlags", Layout {size: size_of::<GConverterFlags>(), alignment: align_of::<GConverterFlags>()}),
    ("GConverterIface", Layout {size: size_of::<GConverterIface>(), alignment: align_of::<GConverterIface>()}),
    ("GConverterInputStream", Layout {size: size_of::<GConverterInputStream>(), alignment: align_of::<GConverterInputStream>()}),
    ("GConverterInputStreamClass", Layout {size: size_of::<GConverterInputStreamClass>(), alignment: align_of::<GConverterInputStreamClass>()}),
    ("GConverterOutputStream", Layout {size: size_of::<GConverterOutputStream>(), alignment: align_of::<GConverterOutputStream>()}),
    ("GConverterOutputStreamClass", Layout {size: size_of::<GConverterOutputStreamClass>(), alignment: align_of::<GConverterOutputStreamClass>()}),
    ("GConverterResult", Layout {size: size_of::<GConverterResult>(), alignment: align_of::<GConverterResult>()}),
    ("GCredentialsType", Layout {size: size_of::<GCredentialsType>(), alignment: align_of::<GCredentialsType>()}),
    ("GDBusAnnotationInfo", Layout {size: size_of::<GDBusAnnotationInfo>(), alignment: align_of::<GDBusAnnotationInfo>()}),
    ("GDBusArgInfo", Layout {size: size_of::<GDBusArgInfo>(), alignment: align_of::<GDBusArgInfo>()}),
    ("GDBusCallFlags", Layout {size: size_of::<GDBusCallFlags>(), alignment: align_of::<GDBusCallFlags>()}),
    ("GDBusCapabilityFlags", Layout {size: size_of::<GDBusCapabilityFlags>(), alignment: align_of::<GDBusCapabilityFlags>()}),
    ("GDBusConnectionFlags", Layout {size: size_of::<GDBusConnectionFlags>(), alignment: align_of::<GDBusConnectionFlags>()}),
    ("GDBusError", Layout {size: size_of::<GDBusError>(), alignment: align_of::<GDBusError>()}),
    ("GDBusErrorEntry", Layout {size: size_of::<GDBusErrorEntry>(), alignment: align_of::<GDBusErrorEntry>()}),
    ("GDBusInterfaceIface", Layout {size: size_of::<GDBusInterfaceIface>(), alignment: align_of::<GDBusInterfaceIface>()}),
    ("GDBusInterfaceInfo", Layout {size: size_of::<GDBusInterfaceInfo>(), alignment: align_of::<GDBusInterfaceInfo>()}),
    ("GDBusInterfaceSkeleton", Layout {size: size_of::<GDBusInterfaceSkeleton>(), alignment: align_of::<GDBusInterfaceSkeleton>()}),
    ("GDBusInterfaceSkeletonClass", Layout {size: size_of::<GDBusInterfaceSkeletonClass>(), alignment: align_of::<GDBusInterfaceSkeletonClass>()}),
    ("GDBusInterfaceSkeletonFlags", Layout {size: size_of::<GDBusInterfaceSkeletonFlags>(), alignment: align_of::<GDBusInterfaceSkeletonFlags>()}),
    ("GDBusInterfaceVTable", Layout {size: size_of::<GDBusInterfaceVTable>(), alignment: align_of::<GDBusInterfaceVTable>()}),
    ("GDBusMessageByteOrder", Layout {size: size_of::<GDBusMessageByteOrder>(), alignment: align_of::<GDBusMessageByteOrder>()}),
    ("GDBusMessageFlags", Layout {size: size_of::<GDBusMessageFlags>(), alignment: align_of::<GDBusMessageFlags>()}),
    ("GDBusMessageHeaderField", Layout {size: size_of::<GDBusMessageHeaderField>(), alignment: align_of::<GDBusMessageHeaderField>()}),
    ("GDBusMessageType", Layout {size: size_of::<GDBusMessageType>(), alignment: align_of::<GDBusMessageType>()}),
    ("GDBusMethodInfo", Layout {size: size_of::<GDBusMethodInfo>(), alignment: align_of::<GDBusMethodInfo>()}),
    ("GDBusNodeInfo", Layout {size: size_of::<GDBusNodeInfo>(), alignment: align_of::<GDBusNodeInfo>()}),
    ("GDBusObjectIface", Layout {size: size_of::<GDBusObjectIface>(), alignment: align_of::<GDBusObjectIface>()}),
    ("GDBusObjectManagerClient", Layout {size: size_of::<GDBusObjectManagerClient>(), alignment: align_of::<GDBusObjectManagerClient>()}),
    ("GDBusObjectManagerClientClass", Layout {size: size_of::<GDBusObjectManagerClientClass>(), alignment: align_of::<GDBusObjectManagerClientClass>()}),
    ("GDBusObjectManagerClientFlags", Layout {size: size_of::<GDBusObjectManagerClientFlags>(), alignment: align_of::<GDBusObjectManagerClientFlags>()}),
    ("GDBusObjectManagerIface", Layout {size: size_of::<GDBusObjectManagerIface>(), alignment: align_of::<GDBusObjectManagerIface>()}),
    ("GDBusObjectManagerServer", Layout {size: size_of::<GDBusObjectManagerServer>(), alignment: align_of::<GDBusObjectManagerServer>()}),
    ("GDBusObjectManagerServerClass", Layout {size: size_of::<GDBusObjectManagerServerClass>(), alignment: align_of::<GDBusObjectManagerServerClass>()}),
    ("GDBusObjectProxy", Layout {size: size_of::<GDBusObjectProxy>(), alignment: align_of::<GDBusObjectProxy>()}),
    ("GDBusObjectProxyClass", Layout {size: size_of::<GDBusObjectProxyClass>(), alignment: align_of::<GDBusObjectProxyClass>()}),
    ("GDBusObjectSkeleton", Layout {size: size_of::<GDBusObjectSkeleton>(), alignment: align_of::<GDBusObjectSkeleton>()}),
    ("GDBusObjectSkeletonClass", Layout {size: size_of::<GDBusObjectSkeletonClass>(), alignment: align_of::<GDBusObjectSkeletonClass>()}),
    ("GDBusPropertyInfo", Layout {size: size_of::<GDBusPropertyInfo>(), alignment: align_of::<GDBusPropertyInfo>()}),
    ("GDBusPropertyInfoFlags", Layout {size: size_of::<GDBusPropertyInfoFlags>(), alignment: align_of::<GDBusPropertyInfoFlags>()}),
    ("GDBusProxy", Layout {size: size_of::<GDBusProxy>(), alignment: align_of::<GDBusProxy>()}),
    ("GDBusProxyClass", Layout {size: size_of::<GDBusProxyClass>(), alignment: align_of::<GDBusProxyClass>()}),
    ("GDBusProxyFlags", Layout {size: size_of::<GDBusProxyFlags>(), alignment: align_of::<GDBusProxyFlags>()}),
    ("GDBusSendMessageFlags", Layout {size: size_of::<GDBusSendMessageFlags>(), alignment: align_of::<GDBusSendMessageFlags>()}),
    ("GDBusServerFlags", Layout {size: size_of::<GDBusServerFlags>(), alignment: align_of::<GDBusServerFlags>()}),
    ("GDBusSignalFlags", Layout {size: size_of::<GDBusSignalFlags>(), alignment: align_of::<GDBusSignalFlags>()}),
    ("GDBusSignalInfo", Layout {size: size_of::<GDBusSignalInfo>(), alignment: align_of::<GDBusSignalInfo>()}),
    ("GDBusSubtreeFlags", Layout {size: size_of::<GDBusSubtreeFlags>(), alignment: align_of::<GDBusSubtreeFlags>()}),
    ("GDBusSubtreeVTable", Layout {size: size_of::<GDBusSubtreeVTable>(), alignment: align_of::<GDBusSubtreeVTable>()}),
    ("GDataInputStream", Layout {size: size_of::<GDataInputStream>(), alignment: align_of::<GDataInputStream>()}),
    ("GDataInputStreamClass", Layout {size: size_of::<GDataInputStreamClass>(), alignment: align_of::<GDataInputStreamClass>()}),
    ("GDataOutputStream", Layout {size: size_of::<GDataOutputStream>(), alignment: align_of::<GDataOutputStream>()}),
    ("GDataOutputStreamClass", Layout {size: size_of::<GDataOutputStreamClass>(), alignment: align_of::<GDataOutputStreamClass>()}),
    ("GDataStreamByteOrder", Layout {size: size_of::<GDataStreamByteOrder>(), alignment: align_of::<GDataStreamByteOrder>()}),
    ("GDataStreamNewlineType", Layout {size: size_of::<GDataStreamNewlineType>(), alignment: align_of::<GDataStreamNewlineType>()}),
    ("GDatagramBasedInterface", Layout {size: size_of::<GDatagramBasedInterface>(), alignment: align_of::<GDatagramBasedInterface>()}),
    ("GDesktopAppInfoClass", Layout {size: size_of::<GDesktopAppInfoClass>(), alignment: align_of::<GDesktopAppInfoClass>()}),
    ("GDesktopAppInfoLookupIface", Layout {size: size_of::<GDesktopAppInfoLookupIface>(), alignment: align_of::<GDesktopAppInfoLookupIface>()}),
    ("GDriveIface", Layout {size: size_of::<GDriveIface>(), alignment: align_of::<GDriveIface>()}),
    ("GDriveStartFlags", Layout {size: size_of::<GDriveStartFlags>(), alignment: align_of::<GDriveStartFlags>()}),
    ("GDriveStartStopType", Layout {size: size_of::<GDriveStartStopType>(), alignment: align_of::<GDriveStartStopType>()}),
    ("GDtlsClientConnectionInterface", Layout {size: size_of::<GDtlsClientConnectionInterface>(), alignment: align_of::<GDtlsClientConnectionInterface>()}),
    ("GDtlsConnectionInterface", Layout {size: size_of::<GDtlsConnectionInterface>(), alignment: align_of::<GDtlsConnectionInterface>()}),
    ("GDtlsServerConnectionInterface", Layout {size: size_of::<GDtlsServerConnectionInterface>(), alignment: align_of::<GDtlsServerConnectionInterface>()}),
    ("GEmblemOrigin", Layout {size: size_of::<GEmblemOrigin>(), alignment: align_of::<GEmblemOrigin>()}),
    ("GEmblemedIcon", Layout {size: size_of::<GEmblemedIcon>(), alignment: align_of::<GEmblemedIcon>()}),
    ("GEmblemedIconClass", Layout {size: size_of::<GEmblemedIconClass>(), alignment: align_of::<GEmblemedIconClass>()}),
    ("GFileAttributeInfo", Layout {size: size_of::<GFileAttributeInfo>(), alignment: align_of::<GFileAttributeInfo>()}),
    ("GFileAttributeInfoFlags", Layout {size: size_of::<GFileAttributeInfoFlags>(), alignment: align_of::<GFileAttributeInfoFlags>()}),
    ("GFileAttributeInfoList", Layout {size: size_of::<GFileAttributeInfoList>(), alignment: align_of::<GFileAttributeInfoList>()}),
    ("GFileAttributeStatus", Layout {size: size_of::<GFileAttributeStatus>(), alignment: align_of::<GFileAttributeStatus>()}),
    ("GFileAttributeType", Layout {size: size_of::<GFileAttributeType>(), alignment: align_of::<GFileAttributeType>()}),
    ("GFileCopyFlags", Layout {size: size_of::<GFileCopyFlags>(), alignment: align_of::<GFileCopyFlags>()}),
    ("GFileCreateFlags", Layout {size: size_of::<GFileCreateFlags>(), alignment: align_of::<GFileCreateFlags>()}),
    ("GFileDescriptorBasedIface", Layout {size: size_of::<GFileDescriptorBasedIface>(), alignment: align_of::<GFileDescriptorBasedIface>()}),
    ("GFileEnumerator", Layout {size: size_of::<GFileEnumerator>(), alignment: align_of::<GFileEnumerator>()}),
    ("GFileEnumeratorClass", Layout {size: size_of::<GFileEnumeratorClass>(), alignment: align_of::<GFileEnumeratorClass>()}),
    ("GFileIOStream", Layout {size: size_of::<GFileIOStream>(), alignment: align_of::<GFileIOStream>()}),
    ("GFileIOStreamClass", Layout {size: size_of::<GFileIOStreamClass>(), alignment: align_of::<GFileIOStreamClass>()}),
    ("GFileIface", Layout {size: size_of::<GFileIface>(), alignment: align_of::<GFileIface>()}),
    ("GFileInputStream", Layout {size: size_of::<GFileInputStream>(), alignment: align_of::<GFileInputStream>()}),
    ("GFileInputStreamClass", Layout {size: size_of::<GFileInputStreamClass>(), alignment: align_of::<GFileInputStreamClass>()}),
    ("GFileMeasureFlags", Layout {size: size_of::<GFileMeasureFlags>(), alignment: align_of::<GFileMeasureFlags>()}),
    ("GFileMonitor", Layout {size: size_of::<GFileMonitor>(), alignment: align_of::<GFileMonitor>()}),
    ("GFileMonitorClass", Layout {size: size_of::<GFileMonitorClass>(), alignment: align_of::<GFileMonitorClass>()}),
    ("GFileMonitorEvent", Layout {size: size_of::<GFileMonitorEvent>(), alignment: align_of::<GFileMonitorEvent>()}),
    ("GFileMonitorFlags", Layout {size: size_of::<GFileMonitorFlags>(), alignment: align_of::<GFileMonitorFlags>()}),
    ("GFileOutputStream", Layout {size: size_of::<GFileOutputStream>(), alignment: align_of::<GFileOutputStream>()}),
    ("GFileOutputStreamClass", Layout {size: size_of::<GFileOutputStreamClass>(), alignment: align_of::<GFileOutputStreamClass>()}),
    ("GFileQueryInfoFlags", Layout {size: size_of::<GFileQueryInfoFlags>(), alignment: align_of::<GFileQueryInfoFlags>()}),
    ("GFileType", Layout {size: size_of::<GFileType>(), alignment: align_of::<GFileType>()}),
    ("GFilenameCompleterClass", Layout {size: size_of::<GFilenameCompleterClass>(), alignment: align_of::<GFilenameCompleterClass>()}),
    ("GFilesystemPreviewType", Layout {size: size_of::<GFilesystemPreviewType>(), alignment: align_of::<GFilesystemPreviewType>()}),
    ("GFilterInputStream", Layout {size: size_of::<GFilterInputStream>(), alignment: align_of::<GFilterInputStream>()}),
    ("GFilterInputStreamClass", Layout {size: size_of::<GFilterInputStreamClass>(), alignment: align_of::<GFilterInputStreamClass>()}),
    ("GFilterOutputStream", Layout {size: size_of::<GFilterOutputStream>(), alignment: align_of::<GFilterOutputStream>()}),
    ("GFilterOutputStreamClass", Layout {size: size_of::<GFilterOutputStreamClass>(), alignment: align_of::<GFilterOutputStreamClass>()}),
    ("GIOErrorEnum", Layout {size: size_of::<GIOErrorEnum>(), alignment: align_of::<GIOErrorEnum>()}),
    ("GIOModuleScopeFlags", Layout {size: size_of::<GIOModuleScopeFlags>(), alignment: align_of::<GIOModuleScopeFlags>()}),
    ("GIOStream", Layout {size: size_of::<GIOStream>(), alignment: align_of::<GIOStream>()}),
    ("GIOStreamClass", Layout {size: size_of::<GIOStreamClass>(), alignment: align_of::<GIOStreamClass>()}),
    ("GIOStreamSpliceFlags", Layout {size: size_of::<GIOStreamSpliceFlags>(), alignment: align_of::<GIOStreamSpliceFlags>()}),
    ("GIconIface", Layout {size: size_of::<GIconIface>(), alignment: align_of::<GIconIface>()}),
    ("GInetAddress", Layout {size: size_of::<GInetAddress>(), alignment: align_of::<GInetAddress>()}),
    ("GInetAddressClass", Layout {size: size_of::<GInetAddressClass>(), alignment: align_of::<GInetAddressClass>()}),
    ("GInetAddressMask", Layout {size: size_of::<GInetAddressMask>(), alignment: align_of::<GInetAddressMask>()}),
    ("GInetAddressMaskClass", Layout {size: size_of::<GInetAddressMaskClass>(), alignment: align_of::<GInetAddressMaskClass>()}),
    ("GInetSocketAddress", Layout {size: size_of::<GInetSocketAddress>(), alignment: align_of::<GInetSocketAddress>()}),
    ("GInetSocketAddressClass", Layout {size: size_of::<GInetSocketAddressClass>(), alignment: align_of::<GInetSocketAddressClass>()}),
    ("GInitableIface", Layout {size: size_of::<GInitableIface>(), alignment: align_of::<GInitableIface>()}),
    ("GInputMessage", Layout {size: size_of::<GInputMessage>(), alignment: align_of::<GInputMessage>()}),
    ("GInputStream", Layout {size: size_of::<GInputStream>(), alignment: align_of::<GInputStream>()}),
    ("GInputStreamClass", Layout {size: size_of::<GInputStreamClass>(), alignment: align_of::<GInputStreamClass>()}),
    ("GInputVector", Layout {size: size_of::<GInputVector>(), alignment: align_of::<GInputVector>()}),
    ("GListModelInterface", Layout {size: size_of::<GListModelInterface>(), alignment: align_of::<GListModelInterface>()}),
    ("GListStoreClass", Layout {size: size_of::<GListStoreClass>(), alignment: align_of::<GListStoreClass>()}),
    ("GLoadableIconIface", Layout {size: size_of::<GLoadableIconIface>(), alignment: align_of::<GLoadableIconIface>()}),
    ("GMemoryInputStream", Layout {size: size_of::<GMemoryInputStream>(), alignment: align_of::<GMemoryInputStream>()}),
    ("GMemoryInputStreamClass", Layout {size: size_of::<GMemoryInputStreamClass>(), alignment: align_of::<GMemoryInputStreamClass>()}),
    ("GMemoryOutputStream", Layout {size: size_of::<GMemoryOutputStream>(), alignment: align_of::<GMemoryOutputStream>()}),
    ("GMemoryOutputStreamClass", Layout {size: size_of::<GMemoryOutputStreamClass>(), alignment: align_of::<GMemoryOutputStreamClass>()}),
    ("GMenuAttributeIter", Layout {size: size_of::<GMenuAttributeIter>(), alignment: align_of::<GMenuAttributeIter>()}),
    ("GMenuAttributeIterClass", Layout {size: size_of::<GMenuAttributeIterClass>(), alignment: align_of::<GMenuAttributeIterClass>()}),
    ("GMenuLinkIter", Layout {size: size_of::<GMenuLinkIter>(), alignment: align_of::<GMenuLinkIter>()}),
    ("GMenuLinkIterClass", Layout {size: size_of::<GMenuLinkIterClass>(), alignment: align_of::<GMenuLinkIterClass>()}),
    ("GMenuModel", Layout {size: size_of::<GMenuModel>(), alignment: align_of::<GMenuModel>()}),
    ("GMenuModelClass", Layout {size: size_of::<GMenuModelClass>(), alignment: align_of::<GMenuModelClass>()}),
    ("GMountIface", Layout {size: size_of::<GMountIface>(), alignment: align_of::<GMountIface>()}),
    ("GMountMountFlags", Layout {size: size_of::<GMountMountFlags>(), alignment: align_of::<GMountMountFlags>()}),
    ("GMountOperation", Layout {size: size_of::<GMountOperation>(), alignment: align_of::<GMountOperation>()}),
    ("GMountOperationClass", Layout {size: size_of::<GMountOperationClass>(), alignment: align_of::<GMountOperationClass>()}),
    ("GMountOperationResult", Layout {size: size_of::<GMountOperationResult>(), alignment: align_of::<GMountOperationResult>()}),
    ("GMountUnmountFlags", Layout {size: size_of::<GMountUnmountFlags>(), alignment: align_of::<GMountUnmountFlags>()}),
    ("GNativeVolumeMonitor", Layout {size: size_of::<GNativeVolumeMonitor>(), alignment: align_of::<GNativeVolumeMonitor>()}),
    ("GNativeVolumeMonitorClass", Layout {size: size_of::<GNativeVolumeMonitorClass>(), alignment: align_of::<GNativeVolumeMonitorClass>()}),
    ("GNetworkAddress", Layout {size: size_of::<GNetworkAddress>(), alignment: align_of::<GNetworkAddress>()}),
    ("GNetworkAddressClass", Layout {size: size_of::<GNetworkAddressClass>(), alignment: align_of::<GNetworkAddressClass>()}),
    ("GNetworkConnectivity", Layout {size: size_of::<GNetworkConnectivity>(), alignment: align_of::<GNetworkConnectivity>()}),
    ("GNetworkMonitorInterface", Layout {size: size_of::<GNetworkMonitorInterface>(), alignment: align_of::<GNetworkMonitorInterface>()}),
    ("GNetworkService", Layout {size: size_of::<GNetworkService>(), alignment: align_of::<GNetworkService>()}),
    ("GNetworkServiceClass", Layout {size: size_of::<GNetworkServiceClass>(), alignment: align_of::<GNetworkServiceClass>()}),
    ("GNotificationPriority", Layout {size: size_of::<GNotificationPriority>(), alignment: align_of::<GNotificationPriority>()}),
    ("GOutputMessage", Layout {size: size_of::<GOutputMessage>(), alignment: align_of::<GOutputMessage>()}),
    ("GOutputStream", Layout {size: size_of::<GOutputStream>(), alignment: align_of::<GOutputStream>()}),
    ("GOutputStreamClass", Layout {size: size_of::<GOutputStreamClass>(), alignment: align_of::<GOutputStreamClass>()}),
    ("GOutputStreamSpliceFlags", Layout {size: size_of::<GOutputStreamSpliceFlags>(), alignment: align_of::<GOutputStreamSpliceFlags>()}),
    ("GOutputVector", Layout {size: size_of::<GOutputVector>(), alignment: align_of::<GOutputVector>()}),
    ("GPasswordSave", Layout {size: size_of::<GPasswordSave>(), alignment: align_of::<GPasswordSave>()}),
    ("GPermission", Layout {size: size_of::<GPermission>(), alignment: align_of::<GPermission>()}),
    ("GPermissionClass", Layout {size: size_of::<GPermissionClass>(), alignment: align_of::<GPermissionClass>()}),
    ("GPollableInputStreamInterface", Layout {size: size_of::<GPollableInputStreamInterface>(), alignment: align_of::<GPollableInputStreamInterface>()}),
    ("GPollableOutputStreamInterface", Layout {size: size_of::<GPollableOutputStreamInterface>(), alignment: align_of::<GPollableOutputStreamInterface>()}),
    ("GProxyAddress", Layout {size: size_of::<GProxyAddress>(), alignment: align_of::<GProxyAddress>()}),
    ("GProxyAddressClass", Layout {size: size_of::<GProxyAddressClass>(), alignment: align_of::<GProxyAddressClass>()}),
    ("GProxyAddressEnumerator", Layout {size: size_of::<GProxyAddressEnumerator>(), alignment: align_of::<GProxyAddressEnumerator>()}),
    ("GProxyAddressEnumeratorClass", Layout {size: size_of::<GProxyAddressEnumeratorClass>(), alignment: align_of::<GProxyAddressEnumeratorClass>()}),
    ("GProxyInterface", Layout {size: size_of::<GProxyInterface>(), alignment: align_of::<GProxyInterface>()}),
    ("GProxyResolverInterface", Layout {size: size_of::<GProxyResolverInterface>(), alignment: align_of::<GProxyResolverInterface>()}),
    ("GRemoteActionGroupInterface", Layout {size: size_of::<GRemoteActionGroupInterface>(), alignment: align_of::<GRemoteActionGroupInterface>()}),
    ("GResolver", Layout {size: size_of::<GResolver>(), alignment: align_of::<GResolver>()}),
    ("GResolverClass", Layout {size: size_of::<GResolverClass>(), alignment: align_of::<GResolverClass>()}),
    ("GResolverError", Layout {size: size_of::<GResolverError>(), alignment: align_of::<GResolverError>()}),
    ("GResolverRecordType", Layout {size: size_of::<GResolverRecordType>(), alignment: align_of::<GResolverRecordType>()}),
    ("GResourceError", Layout {size: size_of::<GResourceError>(), alignment: align_of::<GResourceError>()}),
    ("GResourceFlags", Layout {size: size_of::<GResourceFlags>(), alignment: align_of::<GResourceFlags>()}),
    ("GResourceLookupFlags", Layout {size: size_of::<GResourceLookupFlags>(), alignment: align_of::<GResourceLookupFlags>()}),
    ("GSeekableIface", Layout {size: size_of::<GSeekableIface>(), alignment: align_of::<GSeekableIface>()}),
    ("GSettings", Layout {size: size_of::<GSettings>(), alignment: align_of::<GSettings>()}),
    ("GSettingsBackend", Layout {size: size_of::<GSettingsBackend>(), alignment: align_of::<GSettingsBackend>()}),
    ("GSettingsBackendClass", Layout {size: size_of::<GSettingsBackendClass>(), alignment: align_of::<GSettingsBackendClass>()}),
    ("GSettingsBindFlags", Layout {size: size_of::<GSettingsBindFlags>(), alignment: align_of::<GSettingsBindFlags>()}),
    ("GSettingsClass", Layout {size: size_of::<GSettingsClass>(), alignment: align_of::<GSettingsClass>()}),
    ("GSimpleActionGroup", Layout {size: size_of::<GSimpleActionGroup>(), alignment: align_of::<GSimpleActionGroup>()}),
    ("GSimpleActionGroupClass", Layout {size: size_of::<GSimpleActionGroupClass>(), alignment: align_of::<GSimpleActionGroupClass>()}),
    ("GSimpleProxyResolver", Layout {size: size_of::<GSimpleProxyResolver>(), alignment: align_of::<GSimpleProxyResolver>()}),
    ("GSimpleProxyResolverClass", Layout {size: size_of::<GSimpleProxyResolverClass>(), alignment: align_of::<GSimpleProxyResolverClass>()}),
    ("GSocket", Layout {size: size_of::<GSocket>(), alignment: align_of::<GSocket>()}),
    ("GSocketAddress", Layout {size: size_of::<GSocketAddress>(), alignment: align_of::<GSocketAddress>()}),
    ("GSocketAddressClass", Layout {size: size_of::<GSocketAddressClass>(), alignment: align_of::<GSocketAddressClass>()}),
    ("GSocketAddressEnumerator", Layout {size: size_of::<GSocketAddressEnumerator>(), alignment: align_of::<GSocketAddressEnumerator>()}),
    ("GSocketAddressEnumeratorClass", Layout {size: size_of::<GSocketAddressEnumeratorClass>(), alignment: align_of::<GSocketAddressEnumeratorClass>()}),
    ("GSocketClass", Layout {size: size_of::<GSocketClass>(), alignment: align_of::<GSocketClass>()}),
    ("GSocketClient", Layout {size: size_of::<GSocketClient>(), alignment: align_of::<GSocketClient>()}),
    ("GSocketClientClass", Layout {size: size_of::<GSocketClientClass>(), alignment: align_of::<GSocketClientClass>()}),
    ("GSocketClientEvent", Layout {size: size_of::<GSocketClientEvent>(), alignment: align_of::<GSocketClientEvent>()}),
    ("GSocketConnectableIface", Layout {size: size_of::<GSocketConnectableIface>(), alignment: align_of::<GSocketConnectableIface>()}),
    ("GSocketConnection", Layout {size: size_of::<GSocketConnection>(), alignment: align_of::<GSocketConnection>()}),
    ("GSocketConnectionClass", Layout {size: size_of::<GSocketConnectionClass>(), alignment: align_of::<GSocketConnectionClass>()}),
    ("GSocketControlMessage", Layout {size: size_of::<GSocketControlMessage>(), alignment: align_of::<GSocketControlMessage>()}),
    ("GSocketControlMessageClass", Layout {size: size_of::<GSocketControlMessageClass>(), alignment: align_of::<GSocketControlMessageClass>()}),
    ("GSocketFamily", Layout {size: size_of::<GSocketFamily>(), alignment: align_of::<GSocketFamily>()}),
    ("GSocketListener", Layout {size: size_of::<GSocketListener>(), alignment: align_of::<GSocketListener>()}),
    ("GSocketListenerClass", Layout {size: size_of::<GSocketListenerClass>(), alignment: align_of::<GSocketListenerClass>()}),
    ("GSocketListenerEvent", Layout {size: size_of::<GSocketListenerEvent>(), alignment: align_of::<GSocketListenerEvent>()}),
    ("GSocketMsgFlags", Layout {size: size_of::<GSocketMsgFlags>(), alignment: align_of::<GSocketMsgFlags>()}),
    ("GSocketProtocol", Layout {size: size_of::<GSocketProtocol>(), alignment: align_of::<GSocketProtocol>()}),
    ("GSocketService", Layout {size: size_of::<GSocketService>(), alignment: align_of::<GSocketService>()}),
    ("GSocketServiceClass", Layout {size: size_of::<GSocketServiceClass>(), alignment: align_of::<GSocketServiceClass>()}),
    ("GSocketType", Layout {size: size_of::<GSocketType>(), alignment: align_of::<GSocketType>()}),
    ("GStaticResource", Layout {size: size_of::<GStaticResource>(), alignment: align_of::<GStaticResource>()}),
    ("GSubprocessFlags", Layout {size: size_of::<GSubprocessFlags>(), alignment: align_of::<GSubprocessFlags>()}),
    ("GTcpConnection", Layout {size: size_of::<GTcpConnection>(), alignment: align_of::<GTcpConnection>()}),
    ("GTcpConnectionClass", Layout {size: size_of::<GTcpConnectionClass>(), alignment: align_of::<GTcpConnectionClass>()}),
    ("GTcpWrapperConnection", Layout {size: size_of::<GTcpWrapperConnection>(), alignment: align_of::<GTcpWrapperConnection>()}),
    ("GTcpWrapperConnectionClass", Layout {size: size_of::<GTcpWrapperConnectionClass>(), alignment: align_of::<GTcpWrapperConnectionClass>()}),
    ("GTestDBusFlags", Layout {size: size_of::<GTestDBusFlags>(), alignment: align_of::<GTestDBusFlags>()}),
    ("GThreadedSocketService", Layout {size: size_of::<GThreadedSocketService>(), alignment: align_of::<GThreadedSocketService>()}),
    ("GThreadedSocketServiceClass", Layout {size: size_of::<GThreadedSocketServiceClass>(), alignment: align_of::<GThreadedSocketServiceClass>()}),
    ("GTlsAuthenticationMode", Layout {size: size_of::<GTlsAuthenticationMode>(), alignment: align_of::<GTlsAuthenticationMode>()}),
    ("GTlsBackendInterface", Layout {size: size_of::<GTlsBackendInterface>(), alignment: align_of::<GTlsBackendInterface>()}),
    ("GTlsCertificate", Layout {size: size_of::<GTlsCertificate>(), alignment: align_of::<GTlsCertificate>()}),
    ("GTlsCertificateClass", Layout {size: size_of::<GTlsCertificateClass>(), alignment: align_of::<GTlsCertificateClass>()}),
    ("GTlsCertificateFlags", Layout {size: size_of::<GTlsCertificateFlags>(), alignment: align_of::<GTlsCertificateFlags>()}),
    ("GTlsCertificateRequestFlags", Layout {size: size_of::<GTlsCertificateRequestFlags>(), alignment: align_of::<GTlsCertificateRequestFlags>()}),
    ("GTlsClientConnectionInterface", Layout {size: size_of::<GTlsClientConnectionInterface>(), alignment: align_of::<GTlsClientConnectionInterface>()}),
    ("GTlsConnection", Layout {size: size_of::<GTlsConnection>(), alignment: align_of::<GTlsConnection>()}),
    ("GTlsConnectionClass", Layout {size: size_of::<GTlsConnectionClass>(), alignment: align_of::<GTlsConnectionClass>()}),
    ("GTlsDatabase", Layout {size: size_of::<GTlsDatabase>(), alignment: align_of::<GTlsDatabase>()}),
    ("GTlsDatabaseClass", Layout {size: size_of::<GTlsDatabaseClass>(), alignment: align_of::<GTlsDatabaseClass>()}),
    ("GTlsDatabaseLookupFlags", Layout {size: size_of::<GTlsDatabaseLookupFlags>(), alignment: align_of::<GTlsDatabaseLookupFlags>()}),
    ("GTlsDatabaseVerifyFlags", Layout {size: size_of::<GTlsDatabaseVerifyFlags>(), alignment: align_of::<GTlsDatabaseVerifyFlags>()}),
    ("GTlsError", Layout {size: size_of::<GTlsError>(), alignment: align_of::<GTlsError>()}),
    ("GTlsFileDatabaseInterface", Layout {size: size_of::<GTlsFileDatabaseInterface>(), alignment: align_of::<GTlsFileDatabaseInterface>()}),
    ("GTlsInteraction", Layout {size: size_of::<GTlsInteraction>(), alignment: align_of::<GTlsInteraction>()}),
    ("GTlsInteractionClass", Layout {size: size_of::<GTlsInteractionClass>(), alignment: align_of::<GTlsInteractionClass>()}),
    ("GTlsInteractionResult", Layout {size: size_of::<GTlsInteractionResult>(), alignment: align_of::<GTlsInteractionResult>()}),
    ("GTlsPassword", Layout {size: size_of::<GTlsPassword>(), alignment: align_of::<GTlsPassword>()}),
    ("GTlsPasswordClass", Layout {size: size_of::<GTlsPasswordClass>(), alignment: align_of::<GTlsPasswordClass>()}),
    ("GTlsPasswordFlags", Layout {size: size_of::<GTlsPasswordFlags>(), alignment: align_of::<GTlsPasswordFlags>()}),
    ("GTlsRehandshakeMode", Layout {size: size_of::<GTlsRehandshakeMode>(), alignment: align_of::<GTlsRehandshakeMode>()}),
    ("GTlsServerConnectionInterface", Layout {size: size_of::<GTlsServerConnectionInterface>(), alignment: align_of::<GTlsServerConnectionInterface>()}),
    ("GUnixConnection", Layout {size: size_of::<GUnixConnection>(), alignment: align_of::<GUnixConnection>()}),
    ("GUnixConnectionClass", Layout {size: size_of::<GUnixConnectionClass>(), alignment: align_of::<GUnixConnectionClass>()}),
    ("GUnixCredentialsMessage", Layout {size: size_of::<GUnixCredentialsMessage>(), alignment: align_of::<GUnixCredentialsMessage>()}),
    ("GUnixCredentialsMessageClass", Layout {size: size_of::<GUnixCredentialsMessageClass>(), alignment: align_of::<GUnixCredentialsMessageClass>()}),
    ("GUnixFDList", Layout {size: size_of::<GUnixFDList>(), alignment: align_of::<GUnixFDList>()}),
    ("GUnixFDListClass", Layout {size: size_of::<GUnixFDListClass>(), alignment: align_of::<GUnixFDListClass>()}),
    ("GUnixFDMessage", Layout {size: size_of::<GUnixFDMessage>(), alignment: align_of::<GUnixFDMessage>()}),
    ("GUnixFDMessageClass", Layout {size: size_of::<GUnixFDMessageClass>(), alignment: align_of::<GUnixFDMessageClass>()}),
    ("GUnixInputStream", Layout {size: size_of::<GUnixInputStream>(), alignment: align_of::<GUnixInputStream>()}),
    ("GUnixInputStreamClass", Layout {size: size_of::<GUnixInputStreamClass>(), alignment: align_of::<GUnixInputStreamClass>()}),
    ("GUnixOutputStream", Layout {size: size_of::<GUnixOutputStream>(), alignment: align_of::<GUnixOutputStream>()}),
    ("GUnixOutputStreamClass", Layout {size: size_of::<GUnixOutputStreamClass>(), alignment: align_of::<GUnixOutputStreamClass>()}),
    ("GUnixSocketAddress", Layout {size: size_of::<GUnixSocketAddress>(), alignment: align_of::<GUnixSocketAddress>()}),
    ("GUnixSocketAddressClass", Layout {size: size_of::<GUnixSocketAddressClass>(), alignment: align_of::<GUnixSocketAddressClass>()}),
    ("GUnixSocketAddressType", Layout {size: size_of::<GUnixSocketAddressType>(), alignment: align_of::<GUnixSocketAddressType>()}),
    ("GVfs", Layout {size: size_of::<GVfs>(), alignment: align_of::<GVfs>()}),
    ("GVfsClass", Layout {size: size_of::<GVfsClass>(), alignment: align_of::<GVfsClass>()}),
    ("GVolumeIface", Layout {size: size_of::<GVolumeIface>(), alignment: align_of::<GVolumeIface>()}),
    ("GVolumeMonitor", Layout {size: size_of::<GVolumeMonitor>(), alignment: align_of::<GVolumeMonitor>()}),
    ("GVolumeMonitorClass", Layout {size: size_of::<GVolumeMonitorClass>(), alignment: align_of::<GVolumeMonitorClass>()}),
    ("GZlibCompressorClass", Layout {size: size_of::<GZlibCompressorClass>(), alignment: align_of::<GZlibCompressorClass>()}),
    ("GZlibCompressorFormat", Layout {size: size_of::<GZlibCompressorFormat>(), alignment: align_of::<GZlibCompressorFormat>()}),
    ("GZlibDecompressorClass", Layout {size: size_of::<GZlibDecompressorClass>(), alignment: align_of::<GZlibDecompressorClass>()}),
];

const RUST_CONSTANTS: &[(&str, &str)] = &[
    ("G_APPLICATION_CAN_OVERRIDE_APP_ID", "64"),
    ("G_APPLICATION_FLAGS_NONE", "0"),
    ("G_APPLICATION_HANDLES_COMMAND_LINE", "8"),
    ("G_APPLICATION_HANDLES_OPEN", "4"),
    ("G_APPLICATION_IS_LAUNCHER", "2"),
    ("G_APPLICATION_IS_SERVICE", "1"),
    ("G_APPLICATION_NON_UNIQUE", "32"),
    ("G_APPLICATION_SEND_ENVIRONMENT", "16"),
    ("G_APP_INFO_CREATE_NEEDS_TERMINAL", "1"),
    ("G_APP_INFO_CREATE_NONE", "0"),
    ("G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION", "4"),
    ("G_APP_INFO_CREATE_SUPPORTS_URIS", "2"),
    ("G_ASK_PASSWORD_ANONYMOUS_SUPPORTED", "16"),
    ("G_ASK_PASSWORD_NEED_DOMAIN", "4"),
    ("G_ASK_PASSWORD_NEED_PASSWORD", "1"),
    ("G_ASK_PASSWORD_NEED_USERNAME", "2"),
    ("G_ASK_PASSWORD_SAVING_SUPPORTED", "8"),
    ("G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT", "1"),
    ("G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE", "4"),
    ("G_BUS_NAME_OWNER_FLAGS_NONE", "0"),
    ("G_BUS_NAME_OWNER_FLAGS_REPLACE", "2"),
    ("G_BUS_NAME_WATCHER_FLAGS_AUTO_START", "1"),
    ("G_BUS_NAME_WATCHER_FLAGS_NONE", "0"),
    ("G_BUS_TYPE_NONE", "0"),
    ("G_BUS_TYPE_SESSION", "2"),
    ("G_BUS_TYPE_STARTER", "-1"),
    ("G_BUS_TYPE_SYSTEM", "1"),
    ("G_CONVERTER_CONVERTED", "1"),
    ("G_CONVERTER_ERROR", "0"),
    ("G_CONVERTER_FINISHED", "2"),
    ("G_CONVERTER_FLUSH", "2"),
    ("G_CONVERTER_FLUSHED", "3"),
    ("G_CONVERTER_INPUT_AT_END", "1"),
    ("G_CONVERTER_NO_FLAGS", "0"),
    ("G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED", "2"),
    ("G_CREDENTIALS_TYPE_INVALID", "0"),
    ("G_CREDENTIALS_TYPE_LINUX_UCRED", "1"),
    ("G_CREDENTIALS_TYPE_NETBSD_UNPCBID", "5"),
    ("G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED", "3"),
    ("G_CREDENTIALS_TYPE_SOLARIS_UCRED", "4"),
    ("G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN", "0"),
    ("G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN", "2"),
    ("G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN", "1"),
    ("G_DATA_STREAM_NEWLINE_TYPE_ANY", "3"),
    ("G_DATA_STREAM_NEWLINE_TYPE_CR", "1"),
    ("G_DATA_STREAM_NEWLINE_TYPE_CR_LF", "2"),
    ("G_DATA_STREAM_NEWLINE_TYPE_LF", "0"),
    ("G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION", "2"),
    ("G_DBUS_CALL_FLAGS_NONE", "0"),
    ("G_DBUS_CALL_FLAGS_NO_AUTO_START", "1"),
    ("G_DBUS_CAPABILITY_FLAGS_NONE", "0"),
    ("G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING", "1"),
    ("G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS", "4"),
    ("G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT", "1"),
    ("G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER", "2"),
    ("G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING", "16"),
    ("G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION", "8"),
    ("G_DBUS_CONNECTION_FLAGS_NONE", "0"),
    ("G_DBUS_ERROR_ACCESS_DENIED", "9"),
    ("G_DBUS_ERROR_ADDRESS_IN_USE", "14"),
    ("G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN", "39"),
    ("G_DBUS_ERROR_AUTH_FAILED", "10"),
    ("G_DBUS_ERROR_BAD_ADDRESS", "6"),
    ("G_DBUS_ERROR_DISCONNECTED", "15"),
    ("G_DBUS_ERROR_FAILED", "0"),
    ("G_DBUS_ERROR_FILE_EXISTS", "18"),
    ("G_DBUS_ERROR_FILE_NOT_FOUND", "17"),
    ("G_DBUS_ERROR_INVALID_ARGS", "16"),
    ("G_DBUS_ERROR_INVALID_FILE_CONTENT", "37"),
    ("G_DBUS_ERROR_INVALID_SIGNATURE", "36"),
    ("G_DBUS_ERROR_IO_ERROR", "5"),
    ("G_DBUS_ERROR_LIMITS_EXCEEDED", "8"),
    ("G_DBUS_ERROR_MATCH_RULE_INVALID", "22"),
    ("G_DBUS_ERROR_MATCH_RULE_NOT_FOUND", "21"),
    ("G_DBUS_ERROR_NAME_HAS_NO_OWNER", "3"),
    ("G_DBUS_ERROR_NOT_SUPPORTED", "7"),
    ("G_DBUS_ERROR_NO_MEMORY", "1"),
    ("G_DBUS_ERROR_NO_NETWORK", "13"),
    ("G_DBUS_ERROR_NO_REPLY", "4"),
    ("G_DBUS_ERROR_NO_SERVER", "11"),
    ("G_DBUS_ERROR_OBJECT_PATH_IN_USE", "40"),
    ("G_DBUS_ERROR_PROPERTY_READ_ONLY", "44"),
    ("G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN", "38"),
    ("G_DBUS_ERROR_SERVICE_UNKNOWN", "2"),
    ("G_DBUS_ERROR_SPAWN_CHILD_EXITED", "25"),
    ("G_DBUS_ERROR_SPAWN_CHILD_SIGNALED", "26"),
    ("G_DBUS_ERROR_SPAWN_CONFIG_INVALID", "29"),
    ("G_DBUS_ERROR_SPAWN_EXEC_FAILED", "23"),
    ("G_DBUS_ERROR_SPAWN_FAILED", "27"),
    ("G_DBUS_ERROR_SPAWN_FILE_INVALID", "33"),
    ("G_DBUS_ERROR_SPAWN_FORK_FAILED", "24"),
    ("G_DBUS_ERROR_SPAWN_NO_MEMORY", "34"),
    ("G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID", "32"),
    ("G_DBUS_ERROR_SPAWN_SERVICE_INVALID", "30"),
    ("G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND", "31"),
    ("G_DBUS_ERROR_SPAWN_SETUP_FAILED", "28"),
    ("G_DBUS_ERROR_TIMED_OUT", "20"),
    ("G_DBUS_ERROR_TIMEOUT", "12"),
    ("G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN", "35"),
    ("G_DBUS_ERROR_UNKNOWN_INTERFACE", "42"),
    ("G_DBUS_ERROR_UNKNOWN_METHOD", "19"),
    ("G_DBUS_ERROR_UNKNOWN_OBJECT", "41"),
    ("G_DBUS_ERROR_UNKNOWN_PROPERTY", "43"),
    ("G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD", "1"),
    ("G_DBUS_INTERFACE_SKELETON_FLAGS_NONE", "0"),
    ("G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN", "66"),
    ("G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN", "108"),
    ("G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION", "4"),
    ("G_DBUS_MESSAGE_FLAGS_NONE", "0"),
    ("G_DBUS_MESSAGE_FLAGS_NO_AUTO_START", "2"),
    ("G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED", "1"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION", "6"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME", "4"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE", "2"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_INVALID", "0"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_MEMBER", "3"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS", "9"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_PATH", "1"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL", "5"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_SENDER", "7"),
    ("G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE", "8"),
    ("G_DBUS_MESSAGE_TYPE_ERROR", "3"),
    ("G_DBUS_MESSAGE_TYPE_INVALID", "0"),
    ("G_DBUS_MESSAGE_TYPE_METHOD_CALL", "1"),
    ("G_DBUS_MESSAGE_TYPE_METHOD_RETURN", "2"),
    ("G_DBUS_MESSAGE_TYPE_SIGNAL", "4"),
    ("G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START", "1"),
    ("G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE", "0"),
    ("G_DBUS_PROPERTY_INFO_FLAGS_NONE", "0"),
    ("G_DBUS_PROPERTY_INFO_FLAGS_READABLE", "1"),
    ("G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE", "2"),
    ("G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START", "4"),
    ("G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION", "16"),
    ("G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS", "2"),
    ("G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES", "1"),
    ("G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES", "8"),
    ("G_DBUS_PROXY_FLAGS_NONE", "0"),
    ("G_DBUS_SEND_MESSAGE_FLAGS_NONE", "0"),
    ("G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL", "1"),
    ("G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS", "2"),
    ("G_DBUS_SERVER_FLAGS_NONE", "0"),
    ("G_DBUS_SERVER_FLAGS_RUN_IN_THREAD", "1"),
    ("G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE", "2"),
    ("G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH", "4"),
    ("G_DBUS_SIGNAL_FLAGS_NONE", "0"),
    ("G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE", "1"),
    ("G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES", "1"),
    ("G_DBUS_SUBTREE_FLAGS_NONE", "0"),
    ("G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME", "gio-desktop-app-info-lookup"),
    ("G_DRIVE_START_NONE", "0"),
    ("G_DRIVE_START_STOP_TYPE_MULTIDISK", "3"),
    ("G_DRIVE_START_STOP_TYPE_NETWORK", "2"),
    ("G_DRIVE_START_STOP_TYPE_PASSWORD", "4"),
    ("G_DRIVE_START_STOP_TYPE_SHUTDOWN", "1"),
    ("G_DRIVE_START_STOP_TYPE_UNKNOWN", "0"),
    ("G_EMBLEM_ORIGIN_DEVICE", "1"),
    ("G_EMBLEM_ORIGIN_LIVEMETADATA", "2"),
    ("G_EMBLEM_ORIGIN_TAG", "3"),
    ("G_EMBLEM_ORIGIN_UNKNOWN", "0"),
    ("G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS", "0"),
    ("G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL", "1"),
    ("G_FILESYSTEM_PREVIEW_TYPE_NEVER", "2"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE", "access::can-delete"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE", "access::can-execute"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_READ", "access::can-read"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME", "access::can-rename"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH", "access::can-trash"),
    ("G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE", "access::can-write"),
    ("G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE", "dos::is-archive"),
    ("G_FILE_ATTRIBUTE_DOS_IS_SYSTEM", "dos::is-system"),
    ("G_FILE_ATTRIBUTE_ETAG_VALUE", "etag::value"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_FREE", "filesystem::free"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_READONLY", "filesystem::readonly"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE", "filesystem::remote"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_SIZE", "filesystem::size"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_TYPE", "filesystem::type"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_USED", "filesystem::used"),
    ("G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW", "filesystem::use-preview"),
    ("G_FILE_ATTRIBUTE_GVFS_BACKEND", "gvfs::backend"),
    ("G_FILE_ATTRIBUTE_ID_FILE", "id::file"),
    ("G_FILE_ATTRIBUTE_ID_FILESYSTEM", "id::filesystem"),
    ("G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED", "2"),
    ("G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE", "1"),
    ("G_FILE_ATTRIBUTE_INFO_NONE", "0"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT", "mountable::can-eject"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT", "mountable::can-mount"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL", "mountable::can-poll"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START", "mountable::can-start"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED", "mountable::can-start-degraded"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP", "mountable::can-stop"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT", "mountable::can-unmount"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI", "mountable::hal-udi"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC", "mountable::is-media-check-automatic"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE", "mountable::start-stop-type"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE", "mountable::unix-device"),
    ("G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE", "mountable::unix-device-file"),
    ("G_FILE_ATTRIBUTE_OWNER_GROUP", "owner::group"),
    ("G_FILE_ATTRIBUTE_OWNER_USER", "owner::user"),
    ("G_FILE_ATTRIBUTE_OWNER_USER_REAL", "owner::user-real"),
    ("G_FILE_ATTRIBUTE_PREVIEW_ICON", "preview::icon"),
    ("G_FILE_ATTRIBUTE_RECENT_MODIFIED", "recent::modified"),
    ("G_FILE_ATTRIBUTE_SELINUX_CONTEXT", "selinux::context"),
    ("G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE", "standard::allocated-size"),
    ("G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE", "standard::content-type"),
    ("G_FILE_ATTRIBUTE_STANDARD_COPY_NAME", "standard::copy-name"),
    ("G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION", "standard::description"),
    ("G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME", "standard::display-name"),
    ("G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME", "standard::edit-name"),
    ("G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE", "standard::fast-content-type"),
    ("G_FILE_ATTRIBUTE_STANDARD_ICON", "standard::icon"),
    ("G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP", "standard::is-backup"),
    ("G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN", "standard::is-hidden"),
    ("G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK", "standard::is-symlink"),
    ("G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL", "standard::is-virtual"),
    ("G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE", "standard::is-volatile"),
    ("G_FILE_ATTRIBUTE_STANDARD_NAME", "standard::name"),
    ("G_FILE_ATTRIBUTE_STANDARD_SIZE", "standard::size"),
    ("G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER", "standard::sort-order"),
    ("G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON", "standard::symbolic-icon"),
    ("G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET", "standard::symlink-target"),
    ("G_FILE_ATTRIBUTE_STANDARD_TARGET_URI", "standard::target-uri"),
    ("G_FILE_ATTRIBUTE_STANDARD_TYPE", "standard::type"),
    ("G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING", "2"),
    ("G_FILE_ATTRIBUTE_STATUS_SET", "1"),
    ("G_FILE_ATTRIBUTE_STATUS_UNSET", "0"),
    ("G_FILE_ATTRIBUTE_THUMBNAILING_FAILED", "thumbnail::failed"),
    ("G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID", "thumbnail::is-valid"),
    ("G_FILE_ATTRIBUTE_THUMBNAIL_PATH", "thumbnail::path"),
    ("G_FILE_ATTRIBUTE_TIME_ACCESS", "time::access"),
    ("G_FILE_ATTRIBUTE_TIME_ACCESS_USEC", "time::access-usec"),
    ("G_FILE_ATTRIBUTE_TIME_CHANGED", "time::changed"),
    ("G_FILE_ATTRIBUTE_TIME_CHANGED_USEC", "time::changed-usec"),
    ("G_FILE_ATTRIBUTE_TIME_CREATED", "time::created"),
    ("G_FILE_ATTRIBUTE_TIME_CREATED_USEC", "time::created-usec"),
    ("G_FILE_ATTRIBUTE_TIME_MODIFIED", "time::modified"),
    ("G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC", "time::modified-usec"),
    ("G_FILE_ATTRIBUTE_TRASH_DELETION_DATE", "trash::deletion-date"),
    ("G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT", "trash::item-count"),
    ("G_FILE_ATTRIBUTE_TRASH_ORIG_PATH", "trash::orig-path"),
    ("G_FILE_ATTRIBUTE_TYPE_BOOLEAN", "3"),
    ("G_FILE_ATTRIBUTE_TYPE_BYTE_STRING", "2"),
    ("G_FILE_ATTRIBUTE_TYPE_INT32", "5"),
    ("G_FILE_ATTRIBUTE_TYPE_INT64", "7"),
    ("G_FILE_ATTRIBUTE_TYPE_INVALID", "0"),
    ("G_FILE_ATTRIBUTE_TYPE_OBJECT", "8"),
    ("G_FILE_ATTRIBUTE_TYPE_STRING", "1"),
    ("G_FILE_ATTRIBUTE_TYPE_STRINGV", "9"),
    ("G_FILE_ATTRIBUTE_TYPE_UINT32", "4"),
    ("G_FILE_ATTRIBUTE_TYPE_UINT64", "6"),
    ("G_FILE_ATTRIBUTE_UNIX_BLOCKS", "unix::blocks"),
    ("G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE", "unix::block-size"),
    ("G_FILE_ATTRIBUTE_UNIX_DEVICE", "unix::device"),
    ("G_FILE_ATTRIBUTE_UNIX_GID", "unix::gid"),
    ("G_FILE_ATTRIBUTE_UNIX_INODE", "unix::inode"),
    ("G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT", "unix::is-mountpoint"),
    ("G_FILE_ATTRIBUTE_UNIX_MODE", "unix::mode"),
    ("G_FILE_ATTRIBUTE_UNIX_NLINK", "unix::nlink"),
    ("G_FILE_ATTRIBUTE_UNIX_RDEV", "unix::rdev"),
    ("G_FILE_ATTRIBUTE_UNIX_UID", "unix::uid"),
    ("G_FILE_COPY_ALL_METADATA", "8"),
    ("G_FILE_COPY_BACKUP", "2"),
    ("G_FILE_COPY_NOFOLLOW_SYMLINKS", "4"),
    ("G_FILE_COPY_NONE", "0"),
    ("G_FILE_COPY_NO_FALLBACK_FOR_MOVE", "16"),
    ("G_FILE_COPY_OVERWRITE", "1"),
    ("G_FILE_COPY_TARGET_DEFAULT_PERMS", "32"),
    ("G_FILE_CREATE_NONE", "0"),
    ("G_FILE_CREATE_PRIVATE", "1"),
    ("G_FILE_CREATE_REPLACE_DESTINATION", "2"),
    ("G_FILE_MEASURE_APPARENT_SIZE", "4"),
    ("G_FILE_MEASURE_NONE", "0"),
    ("G_FILE_MEASURE_NO_XDEV", "8"),
    ("G_FILE_MEASURE_REPORT_ANY_ERROR", "2"),
    ("G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED", "4"),
    ("G_FILE_MONITOR_EVENT_CHANGED", "0"),
    ("G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT", "1"),
    ("G_FILE_MONITOR_EVENT_CREATED", "3"),
    ("G_FILE_MONITOR_EVENT_DELETED", "2"),
    ("G_FILE_MONITOR_EVENT_MOVED", "7"),
    ("G_FILE_MONITOR_EVENT_MOVED_IN", "9"),
    ("G_FILE_MONITOR_EVENT_MOVED_OUT", "10"),
    ("G_FILE_MONITOR_EVENT_PRE_UNMOUNT", "5"),
    ("G_FILE_MONITOR_EVENT_RENAMED", "8"),
    ("G_FILE_MONITOR_EVENT_UNMOUNTED", "6"),
    ("G_FILE_MONITOR_NONE", "0"),
    ("G_FILE_MONITOR_SEND_MOVED", "2"),
    ("G_FILE_MONITOR_WATCH_HARD_LINKS", "4"),
    ("G_FILE_MONITOR_WATCH_MOUNTS", "1"),
    ("G_FILE_MONITOR_WATCH_MOVES", "8"),
    ("G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS", "1"),
    ("G_FILE_QUERY_INFO_NONE", "0"),
    ("G_FILE_TYPE_DIRECTORY", "2"),
    ("G_FILE_TYPE_MOUNTABLE", "6"),
    ("G_FILE_TYPE_REGULAR", "1"),
    ("G_FILE_TYPE_SHORTCUT", "5"),
    ("G_FILE_TYPE_SPECIAL", "4"),
    ("G_FILE_TYPE_SYMBOLIC_LINK", "3"),
    ("G_FILE_TYPE_UNKNOWN", "0"),
    ("G_IO_ERROR_ADDRESS_IN_USE", "33"),
    ("G_IO_ERROR_ALREADY_MOUNTED", "17"),
    ("G_IO_ERROR_BROKEN_PIPE", "44"),
    ("G_IO_ERROR_BUSY", "26"),
    ("G_IO_ERROR_CANCELLED", "19"),
    ("G_IO_ERROR_CANT_CREATE_BACKUP", "22"),
    ("G_IO_ERROR_CLOSED", "18"),
    ("G_IO_ERROR_CONNECTION_CLOSED", "44"),
    ("G_IO_ERROR_CONNECTION_REFUSED", "39"),
    ("G_IO_ERROR_DBUS_ERROR", "36"),
    ("G_IO_ERROR_EXISTS", "2"),
    ("G_IO_ERROR_FAILED", "0"),
    ("G_IO_ERROR_FAILED_HANDLED", "30"),
    ("G_IO_ERROR_FILENAME_TOO_LONG", "9"),
    ("G_IO_ERROR_HOST_NOT_FOUND", "28"),
    ("G_IO_ERROR_HOST_UNREACHABLE", "37"),
    ("G_IO_ERROR_INVALID_ARGUMENT", "13"),
    ("G_IO_ERROR_INVALID_DATA", "35"),
    ("G_IO_ERROR_INVALID_FILENAME", "10"),
    ("G_IO_ERROR_IS_DIRECTORY", "3"),
    ("G_IO_ERROR_MESSAGE_TOO_LARGE", "46"),
    ("G_IO_ERROR_NETWORK_UNREACHABLE", "38"),
    ("G_IO_ERROR_NOT_CONNECTED", "45"),
    ("G_IO_ERROR_NOT_DIRECTORY", "4"),
    ("G_IO_ERROR_NOT_EMPTY", "5"),
    ("G_IO_ERROR_NOT_FOUND", "1"),
    ("G_IO_ERROR_NOT_INITIALIZED", "32"),
    ("G_IO_ERROR_NOT_MOUNTABLE_FILE", "8"),
    ("G_IO_ERROR_NOT_MOUNTED", "16"),
    ("G_IO_ERROR_NOT_REGULAR_FILE", "6"),
    ("G_IO_ERROR_NOT_SUPPORTED", "15"),
    ("G_IO_ERROR_NOT_SYMBOLIC_LINK", "7"),
    ("G_IO_ERROR_NO_SPACE", "12"),
    ("G_IO_ERROR_PARTIAL_INPUT", "34"),
    ("G_IO_ERROR_PENDING", "20"),
    ("G_IO_ERROR_PERMISSION_DENIED", "14"),
    ("G_IO_ERROR_PROXY_AUTH_FAILED", "41"),
    ("G_IO_ERROR_PROXY_FAILED", "40"),
    ("G_IO_ERROR_PROXY_NEED_AUTH", "42"),
    ("G_IO_ERROR_PROXY_NOT_ALLOWED", "43"),
    ("G_IO_ERROR_READ_ONLY", "21"),
    ("G_IO_ERROR_TIMED_OUT", "24"),
    ("G_IO_ERROR_TOO_MANY_LINKS", "11"),
    ("G_IO_ERROR_TOO_MANY_OPEN_FILES", "31"),
    ("G_IO_ERROR_WOULD_BLOCK", "27"),
    ("G_IO_ERROR_WOULD_MERGE", "29"),
    ("G_IO_ERROR_WOULD_RECURSE", "25"),
    ("G_IO_ERROR_WRONG_ETAG", "23"),
    ("G_IO_MODULE_SCOPE_BLOCK_DUPLICATES", "1"),
    ("G_IO_MODULE_SCOPE_NONE", "0"),
    ("G_IO_STREAM_SPLICE_CLOSE_STREAM1", "1"),
    ("G_IO_STREAM_SPLICE_CLOSE_STREAM2", "2"),
    ("G_IO_STREAM_SPLICE_NONE", "0"),
    ("G_IO_STREAM_SPLICE_WAIT_FOR_BOTH", "4"),
    ("G_MENU_ATTRIBUTE_ACTION", "action"),
    ("G_MENU_ATTRIBUTE_ACTION_NAMESPACE", "action-namespace"),
    ("G_MENU_ATTRIBUTE_ICON", "icon"),
    ("G_MENU_ATTRIBUTE_LABEL", "label"),
    ("G_MENU_ATTRIBUTE_TARGET", "target"),
    ("G_MENU_LINK_SECTION", "section"),
    ("G_MENU_LINK_SUBMENU", "submenu"),
    ("G_MOUNT_MOUNT_NONE", "0"),
    ("G_MOUNT_OPERATION_ABORTED", "1"),
    ("G_MOUNT_OPERATION_HANDLED", "0"),
    ("G_MOUNT_OPERATION_UNHANDLED", "2"),
    ("G_MOUNT_UNMOUNT_FORCE", "1"),
    ("G_MOUNT_UNMOUNT_NONE", "0"),
    ("G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME", "gio-native-volume-monitor"),
    ("G_NETWORK_CONNECTIVITY_FULL", "4"),
    ("G_NETWORK_CONNECTIVITY_LIMITED", "2"),
    ("G_NETWORK_CONNECTIVITY_LOCAL", "1"),
    ("G_NETWORK_CONNECTIVITY_PORTAL", "3"),
    ("G_NETWORK_MONITOR_EXTENSION_POINT_NAME", "gio-network-monitor"),
    ("G_NOTIFICATION_PRIORITY_HIGH", "2"),
    ("G_NOTIFICATION_PRIORITY_LOW", "1"),
    ("G_NOTIFICATION_PRIORITY_NORMAL", "0"),
    ("G_NOTIFICATION_PRIORITY_URGENT", "3"),
    ("G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE", "1"),
    ("G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET", "2"),
    ("G_OUTPUT_STREAM_SPLICE_NONE", "0"),
    ("G_PASSWORD_SAVE_FOR_SESSION", "1"),
    ("G_PASSWORD_SAVE_NEVER", "0"),
    ("G_PASSWORD_SAVE_PERMANENTLY", "2"),
    ("G_PROXY_EXTENSION_POINT_NAME", "gio-proxy"),
    ("G_PROXY_RESOLVER_EXTENSION_POINT_NAME", "gio-proxy-resolver"),
    ("G_RESOLVER_ERROR_INTERNAL", "2"),
    ("G_RESOLVER_ERROR_NOT_FOUND", "0"),
    ("G_RESOLVER_ERROR_TEMPORARY_FAILURE", "1"),
    ("G_RESOLVER_RECORD_MX", "2"),
    ("G_RESOLVER_RECORD_NS", "5"),
    ("G_RESOLVER_RECORD_SOA", "4"),
    ("G_RESOLVER_RECORD_SRV", "1"),
    ("G_RESOLVER_RECORD_TXT", "3"),
    ("G_RESOURCE_ERROR_INTERNAL", "1"),
    ("G_RESOURCE_ERROR_NOT_FOUND", "0"),
    ("G_RESOURCE_FLAGS_COMPRESSED", "1"),
    ("G_RESOURCE_FLAGS_NONE", "0"),
    ("G_RESOURCE_LOOKUP_FLAGS_NONE", "0"),
    ("G_SETTINGS_BACKEND_EXTENSION_POINT_NAME", "gsettings-backend"),
    ("G_SETTINGS_BIND_DEFAULT", "0"),
    ("G_SETTINGS_BIND_GET", "1"),
    ("G_SETTINGS_BIND_GET_NO_CHANGES", "8"),
    ("G_SETTINGS_BIND_INVERT_BOOLEAN", "16"),
    ("G_SETTINGS_BIND_NO_SENSITIVITY", "4"),
    ("G_SETTINGS_BIND_SET", "2"),
    ("G_SOCKET_CLIENT_COMPLETE", "8"),
    ("G_SOCKET_CLIENT_CONNECTED", "3"),
    ("G_SOCKET_CLIENT_CONNECTING", "2"),
    ("G_SOCKET_CLIENT_PROXY_NEGOTIATED", "5"),
    ("G_SOCKET_CLIENT_PROXY_NEGOTIATING", "4"),
    ("G_SOCKET_CLIENT_RESOLVED", "1"),
    ("G_SOCKET_CLIENT_RESOLVING", "0"),
    ("G_SOCKET_CLIENT_TLS_HANDSHAKED", "7"),
    ("G_SOCKET_CLIENT_TLS_HANDSHAKING", "6"),
    ("G_SOCKET_FAMILY_INVALID", "0"),
    ("G_SOCKET_FAMILY_IPV4", "2"),
    ("G_SOCKET_FAMILY_IPV6", "10"),
    ("G_SOCKET_FAMILY_UNIX", "1"),
    ("G_SOCKET_LISTENER_BINDING", "0"),
    ("G_SOCKET_LISTENER_BOUND", "1"),
    ("G_SOCKET_LISTENER_LISTENED", "3"),
    ("G_SOCKET_LISTENER_LISTENING", "2"),
    ("G_SOCKET_MSG_DONTROUTE", "4"),
    ("G_SOCKET_MSG_NONE", "0"),
    ("G_SOCKET_MSG_OOB", "1"),
    ("G_SOCKET_MSG_PEEK", "2"),
    ("G_SOCKET_PROTOCOL_DEFAULT", "0"),
    ("G_SOCKET_PROTOCOL_SCTP", "132"),
    ("G_SOCKET_PROTOCOL_TCP", "6"),
    ("G_SOCKET_PROTOCOL_UDP", "17"),
    ("G_SOCKET_PROTOCOL_UNKNOWN", "-1"),
    ("G_SOCKET_TYPE_DATAGRAM", "2"),
    ("G_SOCKET_TYPE_INVALID", "0"),
    ("G_SOCKET_TYPE_SEQPACKET", "3"),
    ("G_SOCKET_TYPE_STREAM", "1"),
    ("G_SUBPROCESS_FLAGS_INHERIT_FDS", "128"),
    ("G_SUBPROCESS_FLAGS_NONE", "0"),
    ("G_SUBPROCESS_FLAGS_STDERR_MERGE", "64"),
    ("G_SUBPROCESS_FLAGS_STDERR_PIPE", "16"),
    ("G_SUBPROCESS_FLAGS_STDERR_SILENCE", "32"),
    ("G_SUBPROCESS_FLAGS_STDIN_INHERIT", "2"),
    ("G_SUBPROCESS_FLAGS_STDIN_PIPE", "1"),
    ("G_SUBPROCESS_FLAGS_STDOUT_PIPE", "4"),
    ("G_SUBPROCESS_FLAGS_STDOUT_SILENCE", "8"),
    ("G_TEST_DBUS_NONE", "0"),
    ("G_TLS_AUTHENTICATION_NONE", "0"),
    ("G_TLS_AUTHENTICATION_REQUESTED", "1"),
    ("G_TLS_AUTHENTICATION_REQUIRED", "2"),
    ("G_TLS_BACKEND_EXTENSION_POINT_NAME", "gio-tls-backend"),
    ("G_TLS_CERTIFICATE_BAD_IDENTITY", "2"),
    ("G_TLS_CERTIFICATE_EXPIRED", "8"),
    ("G_TLS_CERTIFICATE_GENERIC_ERROR", "64"),
    ("G_TLS_CERTIFICATE_INSECURE", "32"),
    ("G_TLS_CERTIFICATE_NOT_ACTIVATED", "4"),
    ("G_TLS_CERTIFICATE_REQUEST_NONE", "0"),
    ("G_TLS_CERTIFICATE_REVOKED", "16"),
    ("G_TLS_CERTIFICATE_UNKNOWN_CA", "1"),
    ("G_TLS_CERTIFICATE_VALIDATE_ALL", "127"),
    ("G_TLS_DATABASE_LOOKUP_KEYPAIR", "1"),
    ("G_TLS_DATABASE_LOOKUP_NONE", "0"),
    ("G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT", "1.3.6.1.5.5.7.3.2"),
    ("G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER", "1.3.6.1.5.5.7.3.1"),
    ("G_TLS_DATABASE_VERIFY_NONE", "0"),
    ("G_TLS_ERROR_BAD_CERTIFICATE", "2"),
    ("G_TLS_ERROR_CERTIFICATE_REQUIRED", "5"),
    ("G_TLS_ERROR_EOF", "6"),
    ("G_TLS_ERROR_HANDSHAKE", "4"),
    ("G_TLS_ERROR_MISC", "1"),
    ("G_TLS_ERROR_NOT_TLS", "3"),
    ("G_TLS_ERROR_UNAVAILABLE", "0"),
    ("G_TLS_INTERACTION_FAILED", "2"),
    ("G_TLS_INTERACTION_HANDLED", "1"),
    ("G_TLS_INTERACTION_UNHANDLED", "0"),
    ("G_TLS_PASSWORD_FINAL_TRY", "8"),
    ("G_TLS_PASSWORD_MANY_TRIES", "4"),
    ("G_TLS_PASSWORD_NONE", "0"),
    ("G_TLS_PASSWORD_RETRY", "2"),
    ("G_TLS_REHANDSHAKE_NEVER", "0"),
    ("G_TLS_REHANDSHAKE_SAFELY", "1"),
    ("G_TLS_REHANDSHAKE_UNSAFELY", "2"),
    ("G_UNIX_SOCKET_ADDRESS_ABSTRACT", "3"),
    ("G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED", "4"),
    ("G_UNIX_SOCKET_ADDRESS_ANONYMOUS", "1"),
    ("G_UNIX_SOCKET_ADDRESS_INVALID", "0"),
    ("G_UNIX_SOCKET_ADDRESS_PATH", "2"),
    ("G_VFS_EXTENSION_POINT_NAME", "gio-vfs"),
    ("G_VOLUME_IDENTIFIER_KIND_CLASS", "class"),
    ("G_VOLUME_IDENTIFIER_KIND_HAL_UDI", "hal-udi"),
    ("G_VOLUME_IDENTIFIER_KIND_LABEL", "label"),
    ("G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT", "nfs-mount"),
    ("G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE", "unix-device"),
    ("G_VOLUME_IDENTIFIER_KIND_UUID", "uuid"),
    ("G_VOLUME_MONITOR_EXTENSION_POINT_NAME", "gio-volume-monitor"),
    ("G_ZLIB_COMPRESSOR_FORMAT_GZIP", "1"),
    ("G_ZLIB_COMPRESSOR_FORMAT_RAW", "2"),
    ("G_ZLIB_COMPRESSOR_FORMAT_ZLIB", "0"),
];