1use std::io::{Result, Write};
2
3use super::super::general::write_vec;
4
5pub fn begin(w: &mut dyn Write) -> Result<()> {
6 let v = vec![
7 "",
8 "#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]",
9 "#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]",
10 "#![cfg_attr(docsrs, feature(doc_cfg))]",
11 "",
12 ];
13
14 write_vec(w, &v)
15}
16
17pub fn after_extern_crates(w: &mut dyn Write) -> Result<()> {
18 let v = vec![
19 "",
20 "#[allow(unused_imports)]",
21 "use std::ffi::{c_int, c_char, c_uchar, c_float, c_uint, c_double,",
22 " c_short, c_ushort, c_long, c_ulong, c_void};",
23 "#[allow(unused_imports)]",
24 "use libc::{size_t, ssize_t, time_t, off_t, intptr_t, uintptr_t, FILE};",
25 "#[cfg(unix)]",
26 "#[allow(unused_imports)]",
27 "use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};",
28 ];
29
30 write_vec(w, &v)
31}
32
33pub fn use_glib(w: &mut dyn Write) -> Result<()> {
34 let v = vec![
35 "",
36 "#[allow(unused_imports)]",
37 "use glib::{gboolean, gconstpointer, gpointer, GType};",
38 ];
39
40 write_vec(w, &v)
41}
42
43pub fn only_for_glib(w: &mut dyn Write) -> Result<()> {
44 let v = vec![
45 "",
46 "pub type gboolean = c_int;",
47 "pub const GFALSE: c_int = 0;",
48 "pub const GTRUE: c_int = 1;",
49 "",
50 "pub type gconstpointer = *const c_void;",
51 "pub type gpointer = *mut c_void;",
52 "",
53 ];
54
55 write_vec(w, &v)
56}
57
58pub fn only_for_gobject(w: &mut dyn Write) -> Result<()> {
59 let v = vec![
60 "",
61 "pub const G_TYPE_INVALID: GType = 0 << G_TYPE_FUNDAMENTAL_SHIFT;",
62 "pub const G_TYPE_NONE: GType = 1 << G_TYPE_FUNDAMENTAL_SHIFT;",
63 "pub const G_TYPE_INTERFACE: GType = 2 << G_TYPE_FUNDAMENTAL_SHIFT;",
64 "pub const G_TYPE_CHAR: GType = 3 << G_TYPE_FUNDAMENTAL_SHIFT;",
65 "pub const G_TYPE_UCHAR: GType = 4 << G_TYPE_FUNDAMENTAL_SHIFT;",
66 "pub const G_TYPE_BOOLEAN: GType = 5 << G_TYPE_FUNDAMENTAL_SHIFT;",
67 "pub const G_TYPE_INT: GType = 6 << G_TYPE_FUNDAMENTAL_SHIFT;",
68 "pub const G_TYPE_UINT: GType = 7 << G_TYPE_FUNDAMENTAL_SHIFT;",
69 "pub const G_TYPE_LONG: GType = 8 << G_TYPE_FUNDAMENTAL_SHIFT;",
70 "pub const G_TYPE_ULONG: GType = 9 << G_TYPE_FUNDAMENTAL_SHIFT;",
71 "pub const G_TYPE_INT64: GType = 10 << G_TYPE_FUNDAMENTAL_SHIFT;",
72 "pub const G_TYPE_UINT64: GType = 11 << G_TYPE_FUNDAMENTAL_SHIFT;",
73 "pub const G_TYPE_ENUM: GType = 12 << G_TYPE_FUNDAMENTAL_SHIFT;",
74 "pub const G_TYPE_FLAGS: GType = 13 << G_TYPE_FUNDAMENTAL_SHIFT;",
75 "pub const G_TYPE_FLOAT: GType = 14 << G_TYPE_FUNDAMENTAL_SHIFT;",
76 "pub const G_TYPE_DOUBLE: GType = 15 << G_TYPE_FUNDAMENTAL_SHIFT;",
77 "pub const G_TYPE_STRING: GType = 16 << G_TYPE_FUNDAMENTAL_SHIFT;",
78 "pub const G_TYPE_POINTER: GType = 17 << G_TYPE_FUNDAMENTAL_SHIFT;",
79 "pub const G_TYPE_BOXED: GType = 18 << G_TYPE_FUNDAMENTAL_SHIFT;",
80 "pub const G_TYPE_PARAM: GType = 19 << G_TYPE_FUNDAMENTAL_SHIFT;",
81 "pub const G_TYPE_OBJECT: GType = 20 << G_TYPE_FUNDAMENTAL_SHIFT;",
82 "pub const G_TYPE_VARIANT: GType = 21 << G_TYPE_FUNDAMENTAL_SHIFT;",
83 ];
84
85 write_vec(w, &v)
86}
87
88pub fn only_for_gtk(w: &mut dyn Write) -> Result<()> {
89 let v = vec!["", "pub const GTK_ENTRY_BUFFER_MAX_SIZE: u16 = u16::MAX;"];
90
91 write_vec(w, &v)
92}