gmime_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir @ ad40c01)
2// from gir-files (https://github.com/gtk-rs/gir-files @ ebb0385)
3// DO NOT EDIT
4
5#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal)]
7
8extern crate libc;
9extern crate glib_sys as glib;
10extern crate gobject_sys as gobject;
11extern crate gio_sys as gio;
12
13mod manual;
14
15pub use manual::*;
16
17#[allow(unused_imports)]
18use libc::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
19    c_short, c_ushort, c_long, c_ulong,
20    c_void, size_t, ssize_t, intptr_t, uintptr_t, time_t, FILE};
21
22#[allow(unused_imports)]
23use glib::{gboolean, gconstpointer, gpointer, GType};
24
25// Enums
26pub type GMimeAddressType = c_int;
27pub const GMIME_ADDRESS_TYPE_SENDER: GMimeAddressType = 0;
28pub const GMIME_ADDRESS_TYPE_FROM: GMimeAddressType = 1;
29pub const GMIME_ADDRESS_TYPE_REPLY_TO: GMimeAddressType = 2;
30pub const GMIME_ADDRESS_TYPE_TO: GMimeAddressType = 3;
31pub const GMIME_ADDRESS_TYPE_CC: GMimeAddressType = 4;
32pub const GMIME_ADDRESS_TYPE_BCC: GMimeAddressType = 5;
33
34pub type GMimeAutocryptPreferEncrypt = c_int;
35pub const GMIME_AUTOCRYPT_PREFER_ENCRYPT_NONE: GMimeAutocryptPreferEncrypt = 0;
36pub const GMIME_AUTOCRYPT_PREFER_ENCRYPT_MUTUAL: GMimeAutocryptPreferEncrypt = 1;
37
38pub type GMimeCipherAlgo = c_int;
39pub const GMIME_CIPHER_ALGO_DEFAULT: GMimeCipherAlgo = 0;
40pub const GMIME_CIPHER_ALGO_IDEA: GMimeCipherAlgo = 1;
41pub const GMIME_CIPHER_ALGO_3DES: GMimeCipherAlgo = 2;
42pub const GMIME_CIPHER_ALGO_CAST5: GMimeCipherAlgo = 3;
43pub const GMIME_CIPHER_ALGO_BLOWFISH: GMimeCipherAlgo = 4;
44pub const GMIME_CIPHER_ALGO_AES: GMimeCipherAlgo = 7;
45pub const GMIME_CIPHER_ALGO_AES192: GMimeCipherAlgo = 8;
46pub const GMIME_CIPHER_ALGO_AES256: GMimeCipherAlgo = 9;
47pub const GMIME_CIPHER_ALGO_TWOFISH: GMimeCipherAlgo = 10;
48pub const GMIME_CIPHER_ALGO_CAMELLIA128: GMimeCipherAlgo = 11;
49pub const GMIME_CIPHER_ALGO_CAMELLIA192: GMimeCipherAlgo = 12;
50pub const GMIME_CIPHER_ALGO_CAMELLIA256: GMimeCipherAlgo = 13;
51
52pub type GMimeContentEncoding = c_int;
53pub const GMIME_CONTENT_ENCODING_DEFAULT: GMimeContentEncoding = 0;
54pub const GMIME_CONTENT_ENCODING_7BIT: GMimeContentEncoding = 1;
55pub const GMIME_CONTENT_ENCODING_8BIT: GMimeContentEncoding = 2;
56pub const GMIME_CONTENT_ENCODING_BINARY: GMimeContentEncoding = 3;
57pub const GMIME_CONTENT_ENCODING_BASE64: GMimeContentEncoding = 4;
58pub const GMIME_CONTENT_ENCODING_QUOTEDPRINTABLE: GMimeContentEncoding = 5;
59pub const GMIME_CONTENT_ENCODING_UUENCODE: GMimeContentEncoding = 6;
60
61pub type GMimeDigestAlgo = c_int;
62pub const GMIME_DIGEST_ALGO_DEFAULT: GMimeDigestAlgo = 0;
63pub const GMIME_DIGEST_ALGO_MD5: GMimeDigestAlgo = 1;
64pub const GMIME_DIGEST_ALGO_SHA1: GMimeDigestAlgo = 2;
65pub const GMIME_DIGEST_ALGO_RIPEMD160: GMimeDigestAlgo = 3;
66pub const GMIME_DIGEST_ALGO_MD2: GMimeDigestAlgo = 5;
67pub const GMIME_DIGEST_ALGO_TIGER192: GMimeDigestAlgo = 6;
68pub const GMIME_DIGEST_ALGO_HAVAL5160: GMimeDigestAlgo = 7;
69pub const GMIME_DIGEST_ALGO_SHA256: GMimeDigestAlgo = 8;
70pub const GMIME_DIGEST_ALGO_SHA384: GMimeDigestAlgo = 9;
71pub const GMIME_DIGEST_ALGO_SHA512: GMimeDigestAlgo = 10;
72pub const GMIME_DIGEST_ALGO_SHA224: GMimeDigestAlgo = 11;
73pub const GMIME_DIGEST_ALGO_MD4: GMimeDigestAlgo = 301;
74pub const GMIME_DIGEST_ALGO_CRC32: GMimeDigestAlgo = 302;
75pub const GMIME_DIGEST_ALGO_CRC32_RFC1510: GMimeDigestAlgo = 303;
76pub const GMIME_DIGEST_ALGO_CRC32_RFC2440: GMimeDigestAlgo = 304;
77
78pub type GMimeEncodingConstraint = c_int;
79pub const GMIME_ENCODING_CONSTRAINT_7BIT: GMimeEncodingConstraint = 0;
80pub const GMIME_ENCODING_CONSTRAINT_8BIT: GMimeEncodingConstraint = 1;
81pub const GMIME_ENCODING_CONSTRAINT_BINARY: GMimeEncodingConstraint = 2;
82
83pub type GMimeEncryptFlags = c_int;
84pub const GMIME_ENCRYPT_NONE: GMimeEncryptFlags = 0;
85pub const GMIME_ENCRYPT_ALWAYS_TRUST: GMimeEncryptFlags = 1;
86pub const GMIME_ENCRYPT_NO_COMPRESS: GMimeEncryptFlags = 16;
87pub const GMIME_ENCRYPT_SYMMETRIC: GMimeEncryptFlags = 32;
88pub const GMIME_ENCRYPT_THROW_KEYIDS: GMimeEncryptFlags = 64;
89
90pub type GMimeFilterFromMode = c_int;
91pub const GMIME_FILTER_FROM_MODE_DEFAULT: GMimeFilterFromMode = 0;
92pub const GMIME_FILTER_FROM_MODE_ESCAPE: GMimeFilterFromMode = 0;
93pub const GMIME_FILTER_FROM_MODE_ARMOR: GMimeFilterFromMode = 1;
94
95pub type GMimeFilterGZipMode = c_int;
96pub const GMIME_FILTER_GZIP_MODE_ZIP: GMimeFilterGZipMode = 0;
97pub const GMIME_FILTER_GZIP_MODE_UNZIP: GMimeFilterGZipMode = 1;
98
99pub type GMimeFormat = c_int;
100pub const GMIME_FORMAT_MESSAGE: GMimeFormat = 0;
101pub const GMIME_FORMAT_MBOX: GMimeFormat = 1;
102pub const GMIME_FORMAT_MMDF: GMimeFormat = 2;
103
104pub type GMimeNewLineFormat = c_int;
105pub const GMIME_NEWLINE_FORMAT_UNIX: GMimeNewLineFormat = 0;
106pub const GMIME_NEWLINE_FORMAT_DOS: GMimeNewLineFormat = 1;
107
108pub type GMimeOpenPGPData = c_int;
109pub const GMIME_OPENPGP_DATA_NONE: GMimeOpenPGPData = 0;
110pub const GMIME_OPENPGP_DATA_ENCRYPTED: GMimeOpenPGPData = 1;
111pub const GMIME_OPENPGP_DATA_SIGNED: GMimeOpenPGPData = 2;
112pub const GMIME_OPENPGP_DATA_PUBLIC_KEY: GMimeOpenPGPData = 3;
113pub const GMIME_OPENPGP_DATA_PRIVATE_KEY: GMimeOpenPGPData = 4;
114
115pub type GMimeParamEncodingMethod = c_int;
116pub const GMIME_PARAM_ENCODING_METHOD_DEFAULT: GMimeParamEncodingMethod = 0;
117pub const GMIME_PARAM_ENCODING_METHOD_RFC2231: GMimeParamEncodingMethod = 1;
118pub const GMIME_PARAM_ENCODING_METHOD_RFC2047: GMimeParamEncodingMethod = 2;
119
120pub type GMimeParserWarning = c_int;
121pub const GMIME_WARN_DUPLICATED_HEADER: GMimeParserWarning = 1;
122pub const GMIME_WARN_DUPLICATED_PARAMETER: GMimeParserWarning = 2;
123pub const GMIME_WARN_UNENCODED_8BIT_HEADER: GMimeParserWarning = 3;
124pub const GMIME_WARN_INVALID_CONTENT_TYPE: GMimeParserWarning = 4;
125pub const GMIME_WARN_INVALID_RFC2047_HEADER_VALUE: GMimeParserWarning = 5;
126pub const GMIME_WARN_MALFORMED_MULTIPART: GMimeParserWarning = 6;
127pub const GMIME_WARN_TRUNCATED_MESSAGE: GMimeParserWarning = 7;
128pub const GMIME_WARN_MALFORMED_MESSAGE: GMimeParserWarning = 8;
129pub const GMIME_CRIT_INVALID_HEADER_NAME: GMimeParserWarning = 9;
130pub const GMIME_CRIT_CONFLICTING_HEADER: GMimeParserWarning = 10;
131pub const GMIME_CRIT_CONFLICTING_PARAMETER: GMimeParserWarning = 11;
132pub const GMIME_CRIT_MULTIPART_WITHOUT_BOUNDARY: GMimeParserWarning = 12;
133pub const GMIME_WARN_INVALID_PARAMETER: GMimeParserWarning = 13;
134pub const GMIME_WARN_INVALID_ADDRESS_LIST: GMimeParserWarning = 14;
135pub const GMIME_CRIT_NESTING_OVERFLOW: GMimeParserWarning = 15;
136
137pub type GMimePubKeyAlgo = c_int;
138pub const GMIME_PUBKEY_ALGO_DEFAULT: GMimePubKeyAlgo = 0;
139pub const GMIME_PUBKEY_ALGO_RSA: GMimePubKeyAlgo = 1;
140pub const GMIME_PUBKEY_ALGO_RSA_E: GMimePubKeyAlgo = 2;
141pub const GMIME_PUBKEY_ALGO_RSA_S: GMimePubKeyAlgo = 3;
142pub const GMIME_PUBKEY_ALGO_ELG_E: GMimePubKeyAlgo = 16;
143pub const GMIME_PUBKEY_ALGO_DSA: GMimePubKeyAlgo = 17;
144pub const GMIME_PUBKEY_ALGO_ECC: GMimePubKeyAlgo = 18;
145pub const GMIME_PUBKEY_ALGO_ELG: GMimePubKeyAlgo = 20;
146pub const GMIME_PUBKEY_ALGO_ECDSA: GMimePubKeyAlgo = 301;
147pub const GMIME_PUBKEY_ALGO_ECDH: GMimePubKeyAlgo = 302;
148pub const GMIME_PUBKEY_ALGO_EDDSA: GMimePubKeyAlgo = 303;
149
150pub type GMimeRfcComplianceMode = c_int;
151pub const GMIME_RFC_COMPLIANCE_LOOSE: GMimeRfcComplianceMode = 0;
152pub const GMIME_RFC_COMPLIANCE_STRICT: GMimeRfcComplianceMode = 1;
153
154pub type GMimeSecureMimeType = c_int;
155pub const GMIME_SECURE_MIME_TYPE_COMPRESSED_DATA: GMimeSecureMimeType = 0;
156pub const GMIME_SECURE_MIME_TYPE_ENVELOPED_DATA: GMimeSecureMimeType = 1;
157pub const GMIME_SECURE_MIME_TYPE_SIGNED_DATA: GMimeSecureMimeType = 2;
158pub const GMIME_SECURE_MIME_TYPE_CERTS_ONLY: GMimeSecureMimeType = 3;
159pub const GMIME_SECURE_MIME_TYPE_UNKNOWN: GMimeSecureMimeType = 4;
160
161pub type GMimeSeekWhence = c_int;
162pub const GMIME_STREAM_SEEK_SET: GMimeSeekWhence = 0;
163pub const GMIME_STREAM_SEEK_CUR: GMimeSeekWhence = 1;
164pub const GMIME_STREAM_SEEK_END: GMimeSeekWhence = 2;
165
166pub type GMimeSignatureStatus = c_int;
167pub const GMIME_SIGNATURE_STATUS_VALID: GMimeSignatureStatus = 1;
168pub const GMIME_SIGNATURE_STATUS_GREEN: GMimeSignatureStatus = 2;
169pub const GMIME_SIGNATURE_STATUS_RED: GMimeSignatureStatus = 4;
170pub const GMIME_SIGNATURE_STATUS_KEY_REVOKED: GMimeSignatureStatus = 16;
171pub const GMIME_SIGNATURE_STATUS_KEY_EXPIRED: GMimeSignatureStatus = 32;
172pub const GMIME_SIGNATURE_STATUS_SIG_EXPIRED: GMimeSignatureStatus = 64;
173pub const GMIME_SIGNATURE_STATUS_KEY_MISSING: GMimeSignatureStatus = 128;
174pub const GMIME_SIGNATURE_STATUS_CRL_MISSING: GMimeSignatureStatus = 256;
175pub const GMIME_SIGNATURE_STATUS_CRL_TOO_OLD: GMimeSignatureStatus = 512;
176pub const GMIME_SIGNATURE_STATUS_BAD_POLICY: GMimeSignatureStatus = 1024;
177pub const GMIME_SIGNATURE_STATUS_SYS_ERROR: GMimeSignatureStatus = 2048;
178pub const GMIME_SIGNATURE_STATUS_TOFU_CONFLICT: GMimeSignatureStatus = 4096;
179
180pub type GMimeStreamBufferMode = c_int;
181pub const GMIME_STREAM_BUFFER_BLOCK_READ: GMimeStreamBufferMode = 0;
182pub const GMIME_STREAM_BUFFER_BLOCK_WRITE: GMimeStreamBufferMode = 1;
183
184pub type GMimeTrust = c_int;
185pub const GMIME_TRUST_UNKNOWN: GMimeTrust = 0;
186pub const GMIME_TRUST_UNDEFINED: GMimeTrust = 1;
187pub const GMIME_TRUST_NEVER: GMimeTrust = 2;
188pub const GMIME_TRUST_MARGINAL: GMimeTrust = 3;
189pub const GMIME_TRUST_FULL: GMimeTrust = 4;
190pub const GMIME_TRUST_ULTIMATE: GMimeTrust = 5;
191
192pub type GMimeValidity = c_int;
193pub const GMIME_VALIDITY_UNKNOWN: GMimeValidity = 0;
194pub const GMIME_VALIDITY_UNDEFINED: GMimeValidity = 1;
195pub const GMIME_VALIDITY_NEVER: GMimeValidity = 2;
196pub const GMIME_VALIDITY_MARGINAL: GMimeValidity = 3;
197pub const GMIME_VALIDITY_FULL: GMimeValidity = 4;
198pub const GMIME_VALIDITY_ULTIMATE: GMimeValidity = 5;
199
200// Constants
201pub const GMIME_BINARY_AGE: c_int = 207;
202pub const GMIME_DISPOSITION_ATTACHMENT: *const c_char = b"attachment\0" as *const u8 as *const c_char;
203pub const GMIME_DISPOSITION_INLINE: *const c_char = b"inline\0" as *const u8 as *const c_char;
204pub const GMIME_FILTER_ENRICHED_IS_RICHTEXT: c_int = 1;
205pub const GMIME_FILTER_HTML_BLOCKQUOTE_CITATION: c_int = 256;
206pub const GMIME_FILTER_HTML_CITE: c_int = 128;
207pub const GMIME_FILTER_HTML_CONVERT_ADDRESSES: c_int = 32;
208pub const GMIME_FILTER_HTML_CONVERT_NL: c_int = 2;
209pub const GMIME_FILTER_HTML_CONVERT_SPACES: c_int = 4;
210pub const GMIME_FILTER_HTML_CONVERT_URLS: c_int = 8;
211pub const GMIME_FILTER_HTML_ESCAPE_8BIT: c_int = 64;
212pub const GMIME_FILTER_HTML_MARK_CITATION: c_int = 16;
213pub const GMIME_FILTER_HTML_PRE: c_int = 1;
214pub const GMIME_INTERFACE_AGE: c_int = 1;
215pub const GMIME_MAJOR_VERSION: c_int = 3;
216pub const GMIME_MICRO_VERSION: c_int = 7;
217pub const GMIME_MINOR_VERSION: c_int = 2;
218pub const GMIME_SIGNATURE_STATUS_ERROR_MASK: c_int = -8;
219pub const GMIME_UUDECODE_STATE_BEGIN: c_int = 65536;
220pub const GMIME_UUDECODE_STATE_END: c_int = 131072;
221pub const GMIME_UUDECODE_STATE_INIT: c_int = 0;
222pub const GMIME_UUDECODE_STATE_MASK: c_int = 0;
223pub const GMIME_YDECODE_STATE_BEGIN: c_int = 4096;
224pub const GMIME_YDECODE_STATE_DECODE: c_int = 16384;
225pub const GMIME_YDECODE_STATE_END: c_int = 32768;
226pub const GMIME_YDECODE_STATE_EOLN: c_int = 256;
227pub const GMIME_YDECODE_STATE_ESCAPE: c_int = 512;
228pub const GMIME_YDECODE_STATE_INIT: c_int = 0;
229pub const GMIME_YDECODE_STATE_PART: c_int = 8192;
230pub const GMIME_YENCODE_CRC_INIT: c_int = -1;
231pub const GMIME_YENCODE_STATE_INIT: c_int = 0;
232
233// Flags
234pub type GMimeDecryptFlags = c_uint;
235pub const GMIME_DECRYPT_NONE: GMimeDecryptFlags = 0;
236pub const GMIME_DECRYPT_EXPORT_SESSION_KEY: GMimeDecryptFlags = 1;
237pub const GMIME_DECRYPT_NO_VERIFY: GMimeDecryptFlags = 2;
238pub const GMIME_DECRYPT_ENABLE_KEYSERVER_LOOKUPS: GMimeDecryptFlags = 32768;
239pub const GMIME_DECRYPT_ENABLE_ONLINE_CERTIFICATE_CHECKS: GMimeDecryptFlags = 32768;
240
241pub type GMimeFilterBestFlags = c_uint;
242pub const GMIME_FILTER_BEST_CHARSET: GMimeFilterBestFlags = 1;
243pub const GMIME_FILTER_BEST_ENCODING: GMimeFilterBestFlags = 2;
244
245pub type GMimeOpenPGPState = c_uint;
246pub const GMIME_OPENPGP_NONE: GMimeOpenPGPState = 0;
247pub const GMIME_OPENPGP_BEGIN_PGP_MESSAGE: GMimeOpenPGPState = 1;
248pub const GMIME_OPENPGP_END_PGP_MESSAGE: GMimeOpenPGPState = 3;
249pub const GMIME_OPENPGP_BEGIN_PGP_SIGNED_MESSAGE: GMimeOpenPGPState = 4;
250pub const GMIME_OPENPGP_BEGIN_PGP_SIGNATURE: GMimeOpenPGPState = 12;
251pub const GMIME_OPENPGP_END_PGP_SIGNATURE: GMimeOpenPGPState = 28;
252pub const GMIME_OPENPGP_BEGIN_PGP_PUBLIC_KEY_BLOCK: GMimeOpenPGPState = 32;
253pub const GMIME_OPENPGP_END_PGP_PUBLIC_KEY_BLOCK: GMimeOpenPGPState = 96;
254pub const GMIME_OPENPGP_BEGIN_PGP_PRIVATE_KEY_BLOCK: GMimeOpenPGPState = 128;
255pub const GMIME_OPENPGP_END_PGP_PRIVATE_KEY_BLOCK: GMimeOpenPGPState = 384;
256
257pub type GMimeVerifyFlags = c_uint;
258pub const GMIME_VERIFY_NONE: GMimeVerifyFlags = 0;
259pub const GMIME_VERIFY_ENABLE_KEYSERVER_LOOKUPS: GMimeVerifyFlags = 32768;
260pub const GMIME_VERIFY_ENABLE_ONLINE_CERTIFICATE_CHECKS: GMimeVerifyFlags = 32768;
261
262// Callbacks
263pub type GMimeCryptoContextNewFunc = Option<unsafe extern "C" fn() -> *mut GMimeCryptoContext>;
264pub type GMimeHeaderRawValueFormatter = Option<unsafe extern "C" fn(*mut GMimeHeader, *mut GMimeFormatOptions, *const c_char, *const c_char) -> *mut c_char>;
265pub type GMimeObjectForeachFunc = Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeObject, gpointer)>;
266pub type GMimeParserHeaderRegexFunc = Option<unsafe extern "C" fn(*mut GMimeParser, *const c_char, *const c_char, i64, gpointer)>;
267pub type GMimeParserWarningFunc = Option<unsafe extern "C" fn(i64, GMimeParserWarning, *const c_char, gpointer)>;
268pub type GMimePasswordRequestFunc = Option<unsafe extern "C" fn(*mut GMimeCryptoContext, *const c_char, *const c_char, gboolean, *mut GMimeStream, *mut *mut glib::GError) -> gboolean>;
269
270// Records
271#[repr(C)]
272#[derive(Copy, Clone)]
273pub struct GMimeApplicationPkcs7MimeClass {
274    pub parent_class: GMimePartClass,
275}
276
277impl ::std::fmt::Debug for GMimeApplicationPkcs7MimeClass {
278    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
279        f.debug_struct(&format!("GMimeApplicationPkcs7MimeClass @ {:?}", self as *const _))
280         .field("parent_class", &self.parent_class)
281         .finish()
282    }
283}
284
285#[repr(C)]
286#[derive(Copy, Clone)]
287pub struct GMimeAutocryptHeaderClass {
288    pub parent_class: gobject::GObjectClass,
289}
290
291impl ::std::fmt::Debug for GMimeAutocryptHeaderClass {
292    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
293        f.debug_struct(&format!("GMimeAutocryptHeaderClass @ {:?}", self as *const _))
294         .field("parent_class", &self.parent_class)
295         .finish()
296    }
297}
298
299#[repr(C)]
300#[derive(Copy, Clone)]
301pub struct GMimeAutocryptHeaderListClass {
302    pub parent_class: gobject::GObjectClass,
303}
304
305impl ::std::fmt::Debug for GMimeAutocryptHeaderListClass {
306    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
307        f.debug_struct(&format!("GMimeAutocryptHeaderListClass @ {:?}", self as *const _))
308         .field("parent_class", &self.parent_class)
309         .finish()
310    }
311}
312
313#[repr(C)]
314#[derive(Copy, Clone)]
315pub struct GMimeCertificateClass {
316    pub parent_class: gobject::GObjectClass,
317}
318
319impl ::std::fmt::Debug for GMimeCertificateClass {
320    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
321        f.debug_struct(&format!("GMimeCertificateClass @ {:?}", self as *const _))
322         .field("parent_class", &self.parent_class)
323         .finish()
324    }
325}
326
327#[repr(C)]
328#[derive(Copy, Clone)]
329pub struct GMimeCertificateListClass {
330    pub parent_class: gobject::GObjectClass,
331}
332
333impl ::std::fmt::Debug for GMimeCertificateListClass {
334    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
335        f.debug_struct(&format!("GMimeCertificateListClass @ {:?}", self as *const _))
336         .field("parent_class", &self.parent_class)
337         .finish()
338    }
339}
340
341#[repr(C)]
342#[derive(Copy, Clone)]
343pub struct GMimeCharset {
344    pub mask: c_uint,
345    pub level: c_uint,
346}
347
348impl ::std::fmt::Debug for GMimeCharset {
349    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
350        f.debug_struct(&format!("GMimeCharset @ {:?}", self as *const _))
351         .field("mask", &self.mask)
352         .field("level", &self.level)
353         .finish()
354    }
355}
356
357#[repr(C)]
358#[derive(Copy, Clone)]
359pub struct GMimeContentDispositionClass {
360    pub parent_class: gobject::GObjectClass,
361}
362
363impl ::std::fmt::Debug for GMimeContentDispositionClass {
364    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
365        f.debug_struct(&format!("GMimeContentDispositionClass @ {:?}", self as *const _))
366         .field("parent_class", &self.parent_class)
367         .finish()
368    }
369}
370
371#[repr(C)]
372#[derive(Copy, Clone)]
373pub struct GMimeContentTypeClass {
374    pub parent_class: gobject::GObjectClass,
375}
376
377impl ::std::fmt::Debug for GMimeContentTypeClass {
378    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
379        f.debug_struct(&format!("GMimeContentTypeClass @ {:?}", self as *const _))
380         .field("parent_class", &self.parent_class)
381         .finish()
382    }
383}
384
385#[repr(C)]
386#[derive(Copy, Clone)]
387pub struct GMimeCryptoContextClass {
388    pub parent_class: gobject::GObjectClass,
389    pub digest_id: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, *const c_char) -> GMimeDigestAlgo>,
390    pub digest_name: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, GMimeDigestAlgo) -> *const c_char>,
391    pub get_signature_protocol: Option<unsafe extern "C" fn(*mut GMimeCryptoContext) -> *const c_char>,
392    pub get_encryption_protocol: Option<unsafe extern "C" fn(*mut GMimeCryptoContext) -> *const c_char>,
393    pub get_key_exchange_protocol: Option<unsafe extern "C" fn(*mut GMimeCryptoContext) -> *const c_char>,
394    pub sign: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, gboolean, *const c_char, *mut GMimeStream, *mut GMimeStream, *mut *mut glib::GError) -> c_int>,
395    pub verify: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, GMimeVerifyFlags, *mut GMimeStream, *mut GMimeStream, *mut GMimeStream, *mut *mut glib::GError) -> *mut GMimeSignatureList>,
396    pub encrypt: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, gboolean, *const c_char, GMimeEncryptFlags, *mut glib::GPtrArray, *mut GMimeStream, *mut GMimeStream, *mut *mut glib::GError) -> c_int>,
397    pub decrypt: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, GMimeDecryptFlags, *const c_char, *mut GMimeStream, *mut GMimeStream, *mut *mut glib::GError) -> *mut GMimeDecryptResult>,
398    pub import_keys: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, *mut GMimeStream, *mut *mut glib::GError) -> c_int>,
399    pub export_keys: Option<unsafe extern "C" fn(*mut GMimeCryptoContext, *mut *const c_char, *mut GMimeStream, *mut *mut glib::GError) -> c_int>,
400}
401
402impl ::std::fmt::Debug for GMimeCryptoContextClass {
403    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
404        f.debug_struct(&format!("GMimeCryptoContextClass @ {:?}", self as *const _))
405         .field("parent_class", &self.parent_class)
406         .field("digest_id", &self.digest_id)
407         .field("digest_name", &self.digest_name)
408         .field("get_signature_protocol", &self.get_signature_protocol)
409         .field("get_encryption_protocol", &self.get_encryption_protocol)
410         .field("get_key_exchange_protocol", &self.get_key_exchange_protocol)
411         .field("sign", &self.sign)
412         .field("verify", &self.verify)
413         .field("encrypt", &self.encrypt)
414         .field("decrypt", &self.decrypt)
415         .field("import_keys", &self.import_keys)
416         .field("export_keys", &self.export_keys)
417         .finish()
418    }
419}
420
421#[repr(C)]
422#[derive(Copy, Clone)]
423pub struct GMimeDataWrapperClass {
424    pub parent_class: gobject::GObjectClass,
425    pub write_to_stream: Option<unsafe extern "C" fn(*mut GMimeDataWrapper, *mut GMimeStream) -> ssize_t>,
426}
427
428impl ::std::fmt::Debug for GMimeDataWrapperClass {
429    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
430        f.debug_struct(&format!("GMimeDataWrapperClass @ {:?}", self as *const _))
431         .field("parent_class", &self.parent_class)
432         .field("write_to_stream", &self.write_to_stream)
433         .finish()
434    }
435}
436
437#[repr(C)]
438#[derive(Copy, Clone)]
439pub struct GMimeDecryptResultClass {
440    pub parent_class: gobject::GObjectClass,
441}
442
443impl ::std::fmt::Debug for GMimeDecryptResultClass {
444    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
445        f.debug_struct(&format!("GMimeDecryptResultClass @ {:?}", self as *const _))
446         .field("parent_class", &self.parent_class)
447         .finish()
448    }
449}
450
451#[repr(C)]
452#[derive(Copy, Clone)]
453pub struct GMimeEncoding {
454    pub encoding: GMimeContentEncoding,
455    pub uubuf: [u8; 60],
456    pub encode: gboolean,
457    pub save: u32,
458    pub state: c_int,
459}
460
461impl ::std::fmt::Debug for GMimeEncoding {
462    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
463        f.debug_struct(&format!("GMimeEncoding @ {:?}", self as *const _))
464         .field("encoding", &self.encoding)
465         .field("encode", &self.encode)
466         .field("save", &self.save)
467         .field("state", &self.state)
468         .finish()
469    }
470}
471
472#[repr(C)]
473#[derive(Copy, Clone)]
474pub struct GMimeFilterBasicClass {
475    pub parent_class: GMimeFilterClass,
476}
477
478impl ::std::fmt::Debug for GMimeFilterBasicClass {
479    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
480        f.debug_struct(&format!("GMimeFilterBasicClass @ {:?}", self as *const _))
481         .field("parent_class", &self.parent_class)
482         .finish()
483    }
484}
485
486#[repr(C)]
487#[derive(Copy, Clone)]
488pub struct GMimeFilterBestClass {
489    pub parent_class: GMimeFilterClass,
490}
491
492impl ::std::fmt::Debug for GMimeFilterBestClass {
493    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
494        f.debug_struct(&format!("GMimeFilterBestClass @ {:?}", self as *const _))
495         .field("parent_class", &self.parent_class)
496         .finish()
497    }
498}
499
500#[repr(C)]
501#[derive(Copy, Clone)]
502pub struct GMimeFilterCharsetClass {
503    pub parent_class: GMimeFilterClass,
504}
505
506impl ::std::fmt::Debug for GMimeFilterCharsetClass {
507    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
508        f.debug_struct(&format!("GMimeFilterCharsetClass @ {:?}", self as *const _))
509         .field("parent_class", &self.parent_class)
510         .finish()
511    }
512}
513
514#[repr(C)]
515#[derive(Copy, Clone)]
516pub struct GMimeFilterChecksumClass {
517    pub parent_class: GMimeFilterClass,
518}
519
520impl ::std::fmt::Debug for GMimeFilterChecksumClass {
521    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
522        f.debug_struct(&format!("GMimeFilterChecksumClass @ {:?}", self as *const _))
523         .field("parent_class", &self.parent_class)
524         .finish()
525    }
526}
527
528#[repr(C)]
529#[derive(Copy, Clone)]
530pub struct GMimeFilterClass {
531    pub parent_class: gobject::GObjectClass,
532    pub copy: Option<unsafe extern "C" fn(*mut GMimeFilter) -> *mut GMimeFilter>,
533    pub filter: Option<unsafe extern "C" fn(*mut GMimeFilter, *mut u8, size_t, size_t, *mut *mut u8, *mut size_t, *mut size_t)>,
534    pub complete: Option<unsafe extern "C" fn(*mut GMimeFilter, *mut u8, size_t, size_t, *mut *mut u8, *mut size_t, *mut size_t)>,
535    pub reset: Option<unsafe extern "C" fn(*mut GMimeFilter)>,
536}
537
538impl ::std::fmt::Debug for GMimeFilterClass {
539    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
540        f.debug_struct(&format!("GMimeFilterClass @ {:?}", self as *const _))
541         .field("parent_class", &self.parent_class)
542         .field("copy", &self.copy)
543         .field("filter", &self.filter)
544         .field("complete", &self.complete)
545         .field("reset", &self.reset)
546         .finish()
547    }
548}
549
550#[repr(C)]
551#[derive(Copy, Clone)]
552pub struct GMimeFilterDos2UnixClass {
553    pub parent_class: GMimeFilterClass,
554}
555
556impl ::std::fmt::Debug for GMimeFilterDos2UnixClass {
557    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
558        f.debug_struct(&format!("GMimeFilterDos2UnixClass @ {:?}", self as *const _))
559         .field("parent_class", &self.parent_class)
560         .finish()
561    }
562}
563
564#[repr(C)]
565#[derive(Copy, Clone)]
566pub struct GMimeFilterEnrichedClass {
567    pub parent_class: GMimeFilterClass,
568}
569
570impl ::std::fmt::Debug for GMimeFilterEnrichedClass {
571    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
572        f.debug_struct(&format!("GMimeFilterEnrichedClass @ {:?}", self as *const _))
573         .field("parent_class", &self.parent_class)
574         .finish()
575    }
576}
577
578#[repr(C)]
579#[derive(Copy, Clone)]
580pub struct GMimeFilterFromClass {
581    pub parent_class: GMimeFilterClass,
582}
583
584impl ::std::fmt::Debug for GMimeFilterFromClass {
585    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
586        f.debug_struct(&format!("GMimeFilterFromClass @ {:?}", self as *const _))
587         .field("parent_class", &self.parent_class)
588         .finish()
589    }
590}
591
592#[repr(C)]
593#[derive(Copy, Clone)]
594pub struct GMimeFilterGZipClass {
595    pub parent_class: GMimeFilterClass,
596}
597
598impl ::std::fmt::Debug for GMimeFilterGZipClass {
599    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
600        f.debug_struct(&format!("GMimeFilterGZipClass @ {:?}", self as *const _))
601         .field("parent_class", &self.parent_class)
602         .finish()
603    }
604}
605
606#[repr(C)]
607#[derive(Copy, Clone)]
608pub struct GMimeFilterHTMLClass {
609    pub parent_class: GMimeFilterClass,
610}
611
612impl ::std::fmt::Debug for GMimeFilterHTMLClass {
613    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
614        f.debug_struct(&format!("GMimeFilterHTMLClass @ {:?}", self as *const _))
615         .field("parent_class", &self.parent_class)
616         .finish()
617    }
618}
619
620#[repr(C)]
621#[derive(Copy, Clone)]
622pub struct GMimeFilterOpenPGPClass {
623    pub parent_class: GMimeFilterClass,
624}
625
626impl ::std::fmt::Debug for GMimeFilterOpenPGPClass {
627    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
628        f.debug_struct(&format!("GMimeFilterOpenPGPClass @ {:?}", self as *const _))
629         .field("parent_class", &self.parent_class)
630         .finish()
631    }
632}
633
634#[repr(C)]
635#[derive(Copy, Clone)]
636pub struct GMimeFilterSmtpDataClass {
637    pub parent_class: GMimeFilterClass,
638}
639
640impl ::std::fmt::Debug for GMimeFilterSmtpDataClass {
641    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
642        f.debug_struct(&format!("GMimeFilterSmtpDataClass @ {:?}", self as *const _))
643         .field("parent_class", &self.parent_class)
644         .finish()
645    }
646}
647
648#[repr(C)]
649#[derive(Copy, Clone)]
650pub struct GMimeFilterStripClass {
651    pub parent_class: GMimeFilterClass,
652}
653
654impl ::std::fmt::Debug for GMimeFilterStripClass {
655    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
656        f.debug_struct(&format!("GMimeFilterStripClass @ {:?}", self as *const _))
657         .field("parent_class", &self.parent_class)
658         .finish()
659    }
660}
661
662#[repr(C)]
663#[derive(Copy, Clone)]
664pub struct GMimeFilterUnix2DosClass {
665    pub parent_class: GMimeFilterClass,
666}
667
668impl ::std::fmt::Debug for GMimeFilterUnix2DosClass {
669    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
670        f.debug_struct(&format!("GMimeFilterUnix2DosClass @ {:?}", self as *const _))
671         .field("parent_class", &self.parent_class)
672         .finish()
673    }
674}
675
676#[repr(C)]
677#[derive(Copy, Clone)]
678pub struct GMimeFilterWindowsClass {
679    pub parent_class: GMimeFilterClass,
680}
681
682impl ::std::fmt::Debug for GMimeFilterWindowsClass {
683    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
684        f.debug_struct(&format!("GMimeFilterWindowsClass @ {:?}", self as *const _))
685         .field("parent_class", &self.parent_class)
686         .finish()
687    }
688}
689
690#[repr(C)]
691#[derive(Copy, Clone)]
692pub struct GMimeFilterYencClass {
693    pub parent_class: GMimeFilterClass,
694}
695
696impl ::std::fmt::Debug for GMimeFilterYencClass {
697    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
698        f.debug_struct(&format!("GMimeFilterYencClass @ {:?}", self as *const _))
699         .field("parent_class", &self.parent_class)
700         .finish()
701    }
702}
703
704#[repr(C)]
705pub struct GMimeFormatOptions(c_void);
706
707impl ::std::fmt::Debug for GMimeFormatOptions {
708    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
709        f.debug_struct(&format!("GMimeFormatOptions @ {:?}", self as *const _))
710         .finish()
711    }
712}
713
714#[repr(C)]
715pub struct _GMimeGpgContextClass(c_void);
716
717pub type GMimeGpgContextClass = *mut _GMimeGpgContextClass;
718
719#[repr(C)]
720#[derive(Copy, Clone)]
721pub struct GMimeHeaderClass {
722    pub parent_class: gobject::GObjectClass,
723}
724
725impl ::std::fmt::Debug for GMimeHeaderClass {
726    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
727        f.debug_struct(&format!("GMimeHeaderClass @ {:?}", self as *const _))
728         .field("parent_class", &self.parent_class)
729         .finish()
730    }
731}
732
733#[repr(C)]
734#[derive(Copy, Clone)]
735pub struct GMimeHeaderListClass {
736    pub parent_class: gobject::GObjectClass,
737}
738
739impl ::std::fmt::Debug for GMimeHeaderListClass {
740    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
741        f.debug_struct(&format!("GMimeHeaderListClass @ {:?}", self as *const _))
742         .field("parent_class", &self.parent_class)
743         .finish()
744    }
745}
746
747#[repr(C)]
748#[derive(Copy, Clone)]
749pub struct GMimeMessageClass {
750    pub parent_class: GMimeObjectClass,
751}
752
753impl ::std::fmt::Debug for GMimeMessageClass {
754    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
755        f.debug_struct(&format!("GMimeMessageClass @ {:?}", self as *const _))
756         .field("parent_class", &self.parent_class)
757         .finish()
758    }
759}
760
761#[repr(C)]
762#[derive(Copy, Clone)]
763pub struct GMimeMessagePartClass {
764    pub parent_class: GMimeObjectClass,
765}
766
767impl ::std::fmt::Debug for GMimeMessagePartClass {
768    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
769        f.debug_struct(&format!("GMimeMessagePartClass @ {:?}", self as *const _))
770         .field("parent_class", &self.parent_class)
771         .finish()
772    }
773}
774
775#[repr(C)]
776#[derive(Copy, Clone)]
777pub struct GMimeMessagePartialClass {
778    pub parent_class: GMimePartClass,
779}
780
781impl ::std::fmt::Debug for GMimeMessagePartialClass {
782    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
783        f.debug_struct(&format!("GMimeMessagePartialClass @ {:?}", self as *const _))
784         .field("parent_class", &self.parent_class)
785         .finish()
786    }
787}
788
789#[repr(C)]
790#[derive(Copy, Clone)]
791pub struct GMimeMultipartClass {
792    pub parent_class: GMimeObjectClass,
793    pub clear: Option<unsafe extern "C" fn(*mut GMimeMultipart)>,
794    pub add: Option<unsafe extern "C" fn(*mut GMimeMultipart, *mut GMimeObject)>,
795    pub insert: Option<unsafe extern "C" fn(*mut GMimeMultipart, c_int, *mut GMimeObject)>,
796    pub remove: Option<unsafe extern "C" fn(*mut GMimeMultipart, *mut GMimeObject) -> gboolean>,
797    pub remove_at: Option<unsafe extern "C" fn(*mut GMimeMultipart, c_int) -> *mut GMimeObject>,
798    pub get_part: Option<unsafe extern "C" fn(*mut GMimeMultipart, c_int) -> *mut GMimeObject>,
799    pub contains: Option<unsafe extern "C" fn(*mut GMimeMultipart, *mut GMimeObject) -> gboolean>,
800    pub index_of: Option<unsafe extern "C" fn(*mut GMimeMultipart, *mut GMimeObject) -> c_int>,
801    pub get_count: Option<unsafe extern "C" fn(*mut GMimeMultipart) -> c_int>,
802    pub set_boundary: Option<unsafe extern "C" fn(*mut GMimeMultipart, *const c_char)>,
803    pub get_boundary: Option<unsafe extern "C" fn(*mut GMimeMultipart) -> *const c_char>,
804}
805
806impl ::std::fmt::Debug for GMimeMultipartClass {
807    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
808        f.debug_struct(&format!("GMimeMultipartClass @ {:?}", self as *const _))
809         .field("parent_class", &self.parent_class)
810         .field("clear", &self.clear)
811         .field("add", &self.add)
812         .field("insert", &self.insert)
813         .field("remove", &self.remove)
814         .field("remove_at", &self.remove_at)
815         .field("get_part", &self.get_part)
816         .field("contains", &self.contains)
817         .field("index_of", &self.index_of)
818         .field("get_count", &self.get_count)
819         .field("set_boundary", &self.set_boundary)
820         .field("get_boundary", &self.get_boundary)
821         .finish()
822    }
823}
824
825#[repr(C)]
826#[derive(Copy, Clone)]
827pub struct GMimeMultipartEncryptedClass {
828    pub parent_class: GMimeMultipartClass,
829}
830
831impl ::std::fmt::Debug for GMimeMultipartEncryptedClass {
832    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
833        f.debug_struct(&format!("GMimeMultipartEncryptedClass @ {:?}", self as *const _))
834         .field("parent_class", &self.parent_class)
835         .finish()
836    }
837}
838
839#[repr(C)]
840#[derive(Copy, Clone)]
841pub struct GMimeMultipartSignedClass {
842    pub parent_class: GMimeMultipartClass,
843}
844
845impl ::std::fmt::Debug for GMimeMultipartSignedClass {
846    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
847        f.debug_struct(&format!("GMimeMultipartSignedClass @ {:?}", self as *const _))
848         .field("parent_class", &self.parent_class)
849         .finish()
850    }
851}
852
853#[repr(C)]
854#[derive(Copy, Clone)]
855pub struct GMimeObjectClass {
856    pub parent_class: gobject::GObjectClass,
857    pub header_added: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeHeader)>,
858    pub header_changed: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeHeader)>,
859    pub header_removed: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeHeader)>,
860    pub headers_cleared: Option<unsafe extern "C" fn(*mut GMimeObject)>,
861    pub set_content_type: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeContentType)>,
862    pub get_headers: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeFormatOptions) -> *mut c_char>,
863    pub write_to_stream: Option<unsafe extern "C" fn(*mut GMimeObject, *mut GMimeFormatOptions, gboolean, *mut GMimeStream) -> ssize_t>,
864    pub encode: Option<unsafe extern "C" fn(*mut GMimeObject, GMimeEncodingConstraint)>,
865}
866
867impl ::std::fmt::Debug for GMimeObjectClass {
868    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
869        f.debug_struct(&format!("GMimeObjectClass @ {:?}", self as *const _))
870         .field("parent_class", &self.parent_class)
871         .field("header_added", &self.header_added)
872         .field("header_changed", &self.header_changed)
873         .field("header_removed", &self.header_removed)
874         .field("headers_cleared", &self.headers_cleared)
875         .field("set_content_type", &self.set_content_type)
876         .field("get_headers", &self.get_headers)
877         .field("write_to_stream", &self.write_to_stream)
878         .field("encode", &self.encode)
879         .finish()
880    }
881}
882
883#[repr(C)]
884#[derive(Copy, Clone)]
885pub struct GMimeOpenPGPMarker {
886    pub marker: *const c_char,
887    pub len: size_t,
888    pub before: GMimeOpenPGPState,
889    pub after: GMimeOpenPGPState,
890    pub is_end_marker: gboolean,
891}
892
893impl ::std::fmt::Debug for GMimeOpenPGPMarker {
894    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
895        f.debug_struct(&format!("GMimeOpenPGPMarker @ {:?}", self as *const _))
896         .field("marker", &self.marker)
897         .field("len", &self.len)
898         .field("before", &self.before)
899         .field("after", &self.after)
900         .field("is_end_marker", &self.is_end_marker)
901         .finish()
902    }
903}
904
905#[repr(C)]
906#[derive(Copy, Clone)]
907pub struct GMimeParamClass {
908    pub parent_class: gobject::GObjectClass,
909}
910
911impl ::std::fmt::Debug for GMimeParamClass {
912    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
913        f.debug_struct(&format!("GMimeParamClass @ {:?}", self as *const _))
914         .field("parent_class", &self.parent_class)
915         .finish()
916    }
917}
918
919#[repr(C)]
920#[derive(Copy, Clone)]
921pub struct GMimeParamListClass {
922    pub parent_class: gobject::GObjectClass,
923}
924
925impl ::std::fmt::Debug for GMimeParamListClass {
926    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
927        f.debug_struct(&format!("GMimeParamListClass @ {:?}", self as *const _))
928         .field("parent_class", &self.parent_class)
929         .finish()
930    }
931}
932
933#[repr(C)]
934#[derive(Copy, Clone)]
935pub struct GMimeParserClass {
936    pub parent_class: gobject::GObjectClass,
937}
938
939impl ::std::fmt::Debug for GMimeParserClass {
940    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
941        f.debug_struct(&format!("GMimeParserClass @ {:?}", self as *const _))
942         .field("parent_class", &self.parent_class)
943         .finish()
944    }
945}
946
947#[repr(C)]
948pub struct GMimeParserOptions(c_void);
949
950impl ::std::fmt::Debug for GMimeParserOptions {
951    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
952        f.debug_struct(&format!("GMimeParserOptions @ {:?}", self as *const _))
953         .finish()
954    }
955}
956
957#[repr(C)]
958#[derive(Copy, Clone)]
959pub struct GMimePartClass {
960    pub parent_class: GMimeObjectClass,
961    pub set_content: Option<unsafe extern "C" fn(*mut GMimePart, *mut GMimeDataWrapper)>,
962}
963
964impl ::std::fmt::Debug for GMimePartClass {
965    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
966        f.debug_struct(&format!("GMimePartClass @ {:?}", self as *const _))
967         .field("parent_class", &self.parent_class)
968         .field("set_content", &self.set_content)
969         .finish()
970    }
971}
972
973#[repr(C)]
974pub struct GMimePartIter(c_void);
975
976impl ::std::fmt::Debug for GMimePartIter {
977    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
978        f.debug_struct(&format!("GMimePartIter @ {:?}", self as *const _))
979         .finish()
980    }
981}
982
983#[repr(C)]
984pub struct _GMimePkcs7ContextClass(c_void);
985
986pub type GMimePkcs7ContextClass = *mut _GMimePkcs7ContextClass;
987
988#[repr(C)]
989#[derive(Copy, Clone)]
990pub struct GMimeReferences {
991    pub array: *mut glib::GPtrArray,
992}
993
994impl ::std::fmt::Debug for GMimeReferences {
995    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
996        f.debug_struct(&format!("GMimeReferences @ {:?}", self as *const _))
997         .field("array", &self.array)
998         .finish()
999    }
1000}
1001
1002#[repr(C)]
1003#[derive(Copy, Clone)]
1004pub struct GMimeSignatureClass {
1005    pub parent_class: gobject::GObjectClass,
1006}
1007
1008impl ::std::fmt::Debug for GMimeSignatureClass {
1009    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1010        f.debug_struct(&format!("GMimeSignatureClass @ {:?}", self as *const _))
1011         .field("parent_class", &self.parent_class)
1012         .finish()
1013    }
1014}
1015
1016#[repr(C)]
1017#[derive(Copy, Clone)]
1018pub struct GMimeSignatureListClass {
1019    pub parent_class: gobject::GObjectClass,
1020}
1021
1022impl ::std::fmt::Debug for GMimeSignatureListClass {
1023    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1024        f.debug_struct(&format!("GMimeSignatureListClass @ {:?}", self as *const _))
1025         .field("parent_class", &self.parent_class)
1026         .finish()
1027    }
1028}
1029
1030#[repr(C)]
1031#[derive(Copy, Clone)]
1032pub struct GMimeStreamBufferClass {
1033    pub parent_class: GMimeStreamClass,
1034}
1035
1036impl ::std::fmt::Debug for GMimeStreamBufferClass {
1037    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1038        f.debug_struct(&format!("GMimeStreamBufferClass @ {:?}", self as *const _))
1039         .field("parent_class", &self.parent_class)
1040         .finish()
1041    }
1042}
1043
1044#[repr(C)]
1045#[derive(Copy, Clone)]
1046pub struct GMimeStreamCatClass {
1047    pub parent_class: GMimeStreamClass,
1048}
1049
1050impl ::std::fmt::Debug for GMimeStreamCatClass {
1051    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1052        f.debug_struct(&format!("GMimeStreamCatClass @ {:?}", self as *const _))
1053         .field("parent_class", &self.parent_class)
1054         .finish()
1055    }
1056}
1057
1058#[repr(C)]
1059#[derive(Copy, Clone)]
1060pub struct GMimeStreamClass {
1061    pub parent_class: gobject::GObjectClass,
1062    pub read: Option<unsafe extern "C" fn(*mut GMimeStream, *mut u8, size_t) -> ssize_t>,
1063    pub write: Option<unsafe extern "C" fn(*mut GMimeStream, *const c_char, size_t) -> ssize_t>,
1064    pub flush: Option<unsafe extern "C" fn(*mut GMimeStream) -> c_int>,
1065    pub close: Option<unsafe extern "C" fn(*mut GMimeStream) -> c_int>,
1066    pub eos: Option<unsafe extern "C" fn(*mut GMimeStream) -> gboolean>,
1067    pub reset: Option<unsafe extern "C" fn(*mut GMimeStream) -> c_int>,
1068    pub seek: Option<unsafe extern "C" fn(*mut GMimeStream, i64, GMimeSeekWhence) -> i64>,
1069    pub tell: Option<unsafe extern "C" fn(*mut GMimeStream) -> i64>,
1070    pub length: Option<unsafe extern "C" fn(*mut GMimeStream) -> i64>,
1071    pub substream: Option<unsafe extern "C" fn(*mut GMimeStream, i64, i64) -> *mut GMimeStream>,
1072}
1073
1074impl ::std::fmt::Debug for GMimeStreamClass {
1075    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1076        f.debug_struct(&format!("GMimeStreamClass @ {:?}", self as *const _))
1077         .field("parent_class", &self.parent_class)
1078         .field("read", &self.read)
1079         .field("write", &self.write)
1080         .field("flush", &self.flush)
1081         .field("close", &self.close)
1082         .field("eos", &self.eos)
1083         .field("reset", &self.reset)
1084         .field("seek", &self.seek)
1085         .field("tell", &self.tell)
1086         .field("length", &self.length)
1087         .field("substream", &self.substream)
1088         .finish()
1089    }
1090}
1091
1092#[repr(C)]
1093#[derive(Copy, Clone)]
1094pub struct GMimeStreamFileClass {
1095    pub parent_class: GMimeStreamClass,
1096}
1097
1098impl ::std::fmt::Debug for GMimeStreamFileClass {
1099    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1100        f.debug_struct(&format!("GMimeStreamFileClass @ {:?}", self as *const _))
1101         .field("parent_class", &self.parent_class)
1102         .finish()
1103    }
1104}
1105
1106#[repr(C)]
1107#[derive(Copy, Clone)]
1108pub struct GMimeStreamFilterClass {
1109    pub parent_class: GMimeStreamClass,
1110}
1111
1112impl ::std::fmt::Debug for GMimeStreamFilterClass {
1113    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1114        f.debug_struct(&format!("GMimeStreamFilterClass @ {:?}", self as *const _))
1115         .field("parent_class", &self.parent_class)
1116         .finish()
1117    }
1118}
1119
1120#[repr(C)]
1121#[derive(Copy, Clone)]
1122pub struct GMimeStreamFsClass {
1123    pub parent_class: GMimeStreamClass,
1124}
1125
1126impl ::std::fmt::Debug for GMimeStreamFsClass {
1127    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1128        f.debug_struct(&format!("GMimeStreamFsClass @ {:?}", self as *const _))
1129         .field("parent_class", &self.parent_class)
1130         .finish()
1131    }
1132}
1133
1134#[repr(C)]
1135#[derive(Copy, Clone)]
1136pub struct GMimeStreamGIOClass {
1137    pub parent_class: GMimeStreamClass,
1138}
1139
1140impl ::std::fmt::Debug for GMimeStreamGIOClass {
1141    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1142        f.debug_struct(&format!("GMimeStreamGIOClass @ {:?}", self as *const _))
1143         .field("parent_class", &self.parent_class)
1144         .finish()
1145    }
1146}
1147
1148#[repr(C)]
1149#[derive(Copy, Clone)]
1150pub struct GMimeStreamIOVector {
1151    pub data: *mut c_void,
1152    pub len: size_t,
1153}
1154
1155impl ::std::fmt::Debug for GMimeStreamIOVector {
1156    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1157        f.debug_struct(&format!("GMimeStreamIOVector @ {:?}", self as *const _))
1158         .field("data", &self.data)
1159         .field("len", &self.len)
1160         .finish()
1161    }
1162}
1163
1164#[repr(C)]
1165#[derive(Copy, Clone)]
1166pub struct GMimeStreamMemClass {
1167    pub parent_class: GMimeStreamClass,
1168}
1169
1170impl ::std::fmt::Debug for GMimeStreamMemClass {
1171    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1172        f.debug_struct(&format!("GMimeStreamMemClass @ {:?}", self as *const _))
1173         .field("parent_class", &self.parent_class)
1174         .finish()
1175    }
1176}
1177
1178#[repr(C)]
1179#[derive(Copy, Clone)]
1180pub struct GMimeStreamMmapClass {
1181    pub parent_class: GMimeStreamClass,
1182}
1183
1184impl ::std::fmt::Debug for GMimeStreamMmapClass {
1185    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1186        f.debug_struct(&format!("GMimeStreamMmapClass @ {:?}", self as *const _))
1187         .field("parent_class", &self.parent_class)
1188         .finish()
1189    }
1190}
1191
1192#[repr(C)]
1193#[derive(Copy, Clone)]
1194pub struct GMimeStreamNullClass {
1195    pub parent_class: GMimeStreamClass,
1196}
1197
1198impl ::std::fmt::Debug for GMimeStreamNullClass {
1199    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1200        f.debug_struct(&format!("GMimeStreamNullClass @ {:?}", self as *const _))
1201         .field("parent_class", &self.parent_class)
1202         .finish()
1203    }
1204}
1205
1206#[repr(C)]
1207#[derive(Copy, Clone)]
1208pub struct GMimeStreamPipeClass {
1209    pub parent_class: GMimeStreamClass,
1210}
1211
1212impl ::std::fmt::Debug for GMimeStreamPipeClass {
1213    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1214        f.debug_struct(&format!("GMimeStreamPipeClass @ {:?}", self as *const _))
1215         .field("parent_class", &self.parent_class)
1216         .finish()
1217    }
1218}
1219
1220#[repr(C)]
1221#[derive(Copy, Clone)]
1222pub struct GMimeTextPartClass {
1223    pub parent_class: GMimePartClass,
1224}
1225
1226impl ::std::fmt::Debug for GMimeTextPartClass {
1227    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1228        f.debug_struct(&format!("GMimeTextPartClass @ {:?}", self as *const _))
1229         .field("parent_class", &self.parent_class)
1230         .finish()
1231    }
1232}
1233
1234#[repr(C)]
1235#[derive(Copy, Clone)]
1236pub struct InternetAddressClass {
1237    pub parent_class: gobject::GObjectClass,
1238    pub to_string: Option<unsafe extern "C" fn(*mut InternetAddress, *mut GMimeFormatOptions, u32, *mut size_t, *mut glib::GString)>,
1239}
1240
1241impl ::std::fmt::Debug for InternetAddressClass {
1242    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1243        f.debug_struct(&format!("InternetAddressClass @ {:?}", self as *const _))
1244         .field("parent_class", &self.parent_class)
1245         .field("to_string", &self.to_string)
1246         .finish()
1247    }
1248}
1249
1250#[repr(C)]
1251#[derive(Copy, Clone)]
1252pub struct InternetAddressGroupClass {
1253    pub parent_class: InternetAddressClass,
1254}
1255
1256impl ::std::fmt::Debug for InternetAddressGroupClass {
1257    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1258        f.debug_struct(&format!("InternetAddressGroupClass @ {:?}", self as *const _))
1259         .field("parent_class", &self.parent_class)
1260         .finish()
1261    }
1262}
1263
1264#[repr(C)]
1265#[derive(Copy, Clone)]
1266pub struct InternetAddressListClass {
1267    pub parent_class: gobject::GObjectClass,
1268}
1269
1270impl ::std::fmt::Debug for InternetAddressListClass {
1271    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1272        f.debug_struct(&format!("InternetAddressListClass @ {:?}", self as *const _))
1273         .field("parent_class", &self.parent_class)
1274         .finish()
1275    }
1276}
1277
1278#[repr(C)]
1279#[derive(Copy, Clone)]
1280pub struct InternetAddressMailboxClass {
1281    pub parent_class: InternetAddressClass,
1282}
1283
1284impl ::std::fmt::Debug for InternetAddressMailboxClass {
1285    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1286        f.debug_struct(&format!("InternetAddressMailboxClass @ {:?}", self as *const _))
1287         .field("parent_class", &self.parent_class)
1288         .finish()
1289    }
1290}
1291
1292// Classes
1293#[repr(C)]
1294#[derive(Copy, Clone)]
1295pub struct GMimeApplicationPkcs7Mime {
1296    pub parent_object: GMimePart,
1297    pub smime_type: GMimeSecureMimeType,
1298}
1299
1300impl ::std::fmt::Debug for GMimeApplicationPkcs7Mime {
1301    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1302        f.debug_struct(&format!("GMimeApplicationPkcs7Mime @ {:?}", self as *const _))
1303         .field("parent_object", &self.parent_object)
1304         .field("smime_type", &self.smime_type)
1305         .finish()
1306    }
1307}
1308
1309#[repr(C)]
1310#[derive(Copy, Clone)]
1311pub struct GMimeAutocryptHeader {
1312    pub parent_object: gobject::GObject,
1313    pub address: *mut InternetAddressMailbox,
1314    pub prefer_encrypt: GMimeAutocryptPreferEncrypt,
1315    pub keydata: *mut glib::GBytes,
1316    pub effective_date: *mut glib::GDateTime,
1317}
1318
1319impl ::std::fmt::Debug for GMimeAutocryptHeader {
1320    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1321        f.debug_struct(&format!("GMimeAutocryptHeader @ {:?}", self as *const _))
1322         .field("parent_object", &self.parent_object)
1323         .field("address", &self.address)
1324         .field("prefer_encrypt", &self.prefer_encrypt)
1325         .field("keydata", &self.keydata)
1326         .field("effective_date", &self.effective_date)
1327         .finish()
1328    }
1329}
1330
1331#[repr(C)]
1332#[derive(Copy, Clone)]
1333pub struct GMimeAutocryptHeaderList {
1334    pub parent_object: gobject::GObject,
1335    pub array: *mut glib::GPtrArray,
1336}
1337
1338impl ::std::fmt::Debug for GMimeAutocryptHeaderList {
1339    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1340        f.debug_struct(&format!("GMimeAutocryptHeaderList @ {:?}", self as *const _))
1341         .field("parent_object", &self.parent_object)
1342         .finish()
1343    }
1344}
1345
1346#[repr(C)]
1347#[derive(Copy, Clone)]
1348pub struct GMimeCertificate {
1349    pub parent_object: gobject::GObject,
1350    pub pubkey_algo: GMimePubKeyAlgo,
1351    pub digest_algo: GMimeDigestAlgo,
1352    pub trust: GMimeTrust,
1353    pub issuer_serial: *mut c_char,
1354    pub issuer_name: *mut c_char,
1355    pub fingerprint: *mut c_char,
1356    pub created: c_long,
1357    pub expires: c_long,
1358    pub keyid: *mut c_char,
1359    pub email: *mut c_char,
1360    pub name: *mut c_char,
1361    pub user_id: *mut c_char,
1362    pub id_validity: GMimeValidity,
1363}
1364
1365impl ::std::fmt::Debug for GMimeCertificate {
1366    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1367        f.debug_struct(&format!("GMimeCertificate @ {:?}", self as *const _))
1368         .field("parent_object", &self.parent_object)
1369         .field("pubkey_algo", &self.pubkey_algo)
1370         .field("digest_algo", &self.digest_algo)
1371         .field("trust", &self.trust)
1372         .field("issuer_serial", &self.issuer_serial)
1373         .field("issuer_name", &self.issuer_name)
1374         .field("fingerprint", &self.fingerprint)
1375         .field("created", &self.created)
1376         .field("expires", &self.expires)
1377         .field("keyid", &self.keyid)
1378         .field("email", &self.email)
1379         .field("name", &self.name)
1380         .field("user_id", &self.user_id)
1381         .field("id_validity", &self.id_validity)
1382         .finish()
1383    }
1384}
1385
1386#[repr(C)]
1387#[derive(Copy, Clone)]
1388pub struct GMimeCertificateList {
1389    pub parent_object: gobject::GObject,
1390    pub array: *mut glib::GPtrArray,
1391}
1392
1393impl ::std::fmt::Debug for GMimeCertificateList {
1394    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1395        f.debug_struct(&format!("GMimeCertificateList @ {:?}", self as *const _))
1396         .field("parent_object", &self.parent_object)
1397         .field("array", &self.array)
1398         .finish()
1399    }
1400}
1401
1402#[repr(C)]
1403#[derive(Copy, Clone)]
1404pub struct GMimeContentDisposition {
1405    pub parent_object: gobject::GObject,
1406    pub disposition: *mut c_char,
1407    pub params: *mut GMimeParamList,
1408    pub changed: gpointer,
1409}
1410
1411impl ::std::fmt::Debug for GMimeContentDisposition {
1412    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1413        f.debug_struct(&format!("GMimeContentDisposition @ {:?}", self as *const _))
1414         .field("parent_object", &self.parent_object)
1415         .field("disposition", &self.disposition)
1416         .field("params", &self.params)
1417         .finish()
1418    }
1419}
1420
1421#[repr(C)]
1422#[derive(Copy, Clone)]
1423pub struct GMimeContentType {
1424    pub parent_object: gobject::GObject,
1425    pub type_: *mut c_char,
1426    pub subtype: *mut c_char,
1427    pub params: *mut GMimeParamList,
1428    pub changed: gpointer,
1429}
1430
1431impl ::std::fmt::Debug for GMimeContentType {
1432    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1433        f.debug_struct(&format!("GMimeContentType @ {:?}", self as *const _))
1434         .field("parent_object", &self.parent_object)
1435         .field("type_", &self.type_)
1436         .field("subtype", &self.subtype)
1437         .field("params", &self.params)
1438         .finish()
1439    }
1440}
1441
1442#[repr(C)]
1443#[derive(Copy, Clone)]
1444pub struct GMimeCryptoContext {
1445    pub parent_object: gobject::GObject,
1446    pub request_passwd: GMimePasswordRequestFunc,
1447}
1448
1449impl ::std::fmt::Debug for GMimeCryptoContext {
1450    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1451        f.debug_struct(&format!("GMimeCryptoContext @ {:?}", self as *const _))
1452         .field("parent_object", &self.parent_object)
1453         .field("request_passwd", &self.request_passwd)
1454         .finish()
1455    }
1456}
1457
1458#[repr(C)]
1459#[derive(Copy, Clone)]
1460pub struct GMimeDataWrapper {
1461    pub parent_object: gobject::GObject,
1462    pub encoding: GMimeContentEncoding,
1463    pub stream: *mut GMimeStream,
1464}
1465
1466impl ::std::fmt::Debug for GMimeDataWrapper {
1467    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1468        f.debug_struct(&format!("GMimeDataWrapper @ {:?}", self as *const _))
1469         .field("parent_object", &self.parent_object)
1470         .field("encoding", &self.encoding)
1471         .field("stream", &self.stream)
1472         .finish()
1473    }
1474}
1475
1476#[repr(C)]
1477#[derive(Copy, Clone)]
1478pub struct GMimeDecryptResult {
1479    pub parent_object: gobject::GObject,
1480    pub recipients: *mut GMimeCertificateList,
1481    pub signatures: *mut GMimeSignatureList,
1482    pub cipher: GMimeCipherAlgo,
1483    pub mdc: GMimeDigestAlgo,
1484    pub session_key: *mut c_char,
1485}
1486
1487impl ::std::fmt::Debug for GMimeDecryptResult {
1488    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1489        f.debug_struct(&format!("GMimeDecryptResult @ {:?}", self as *const _))
1490         .field("parent_object", &self.parent_object)
1491         .field("recipients", &self.recipients)
1492         .field("signatures", &self.signatures)
1493         .field("cipher", &self.cipher)
1494         .field("mdc", &self.mdc)
1495         .field("session_key", &self.session_key)
1496         .finish()
1497    }
1498}
1499
1500#[repr(C)]
1501#[derive(Copy, Clone)]
1502pub struct GMimeFilter {
1503    pub parent_object: gobject::GObject,
1504    pub priv_: *mut _GMimeFilterPrivate,
1505    pub outreal: *mut c_char,
1506    pub outbuf: *mut c_char,
1507    pub outptr: *mut c_char,
1508    pub outsize: size_t,
1509    pub outpre: size_t,
1510    pub backbuf: *mut c_char,
1511    pub backsize: size_t,
1512    pub backlen: size_t,
1513}
1514
1515impl ::std::fmt::Debug for GMimeFilter {
1516    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1517        f.debug_struct(&format!("GMimeFilter @ {:?}", self as *const _))
1518         .field("parent_object", &self.parent_object)
1519         .field("outreal", &self.outreal)
1520         .field("outbuf", &self.outbuf)
1521         .field("outptr", &self.outptr)
1522         .field("outsize", &self.outsize)
1523         .field("outpre", &self.outpre)
1524         .field("backbuf", &self.backbuf)
1525         .field("backsize", &self.backsize)
1526         .field("backlen", &self.backlen)
1527         .finish()
1528    }
1529}
1530
1531#[repr(C)]
1532#[derive(Copy, Clone)]
1533pub struct GMimeFilterBasic {
1534    pub parent_object: GMimeFilter,
1535    pub encoder: GMimeEncoding,
1536}
1537
1538impl ::std::fmt::Debug for GMimeFilterBasic {
1539    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1540        f.debug_struct(&format!("GMimeFilterBasic @ {:?}", self as *const _))
1541         .field("parent_object", &self.parent_object)
1542         .field("encoder", &self.encoder)
1543         .finish()
1544    }
1545}
1546
1547#[repr(C)]
1548pub struct GMimeFilterBest {
1549    pub parent_object: GMimeFilter,
1550    pub flags: GMimeFilterBestFlags,
1551    pub charset: GMimeCharset,
1552    pub count0: c_uint,
1553    pub count8: c_uint,
1554    pub total: c_uint,
1555    pub maxline: c_uint,
1556    pub linelen: c_uint,
1557    pub frombuf: [u8; 6],
1558    pub fromlen: c_uint,
1559    _truncated_record_marker: c_void,
1560    // field hadfrom has incomplete type
1561}
1562
1563impl ::std::fmt::Debug for GMimeFilterBest {
1564    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1565        f.debug_struct(&format!("GMimeFilterBest @ {:?}", self as *const _))
1566         .field("parent_object", &self.parent_object)
1567         .field("flags", &self.flags)
1568         .field("charset", &self.charset)
1569         .field("count0", &self.count0)
1570         .field("count8", &self.count8)
1571         .field("total", &self.total)
1572         .field("maxline", &self.maxline)
1573         .field("linelen", &self.linelen)
1574         .field("frombuf", &self.frombuf)
1575         .field("fromlen", &self.fromlen)
1576         .finish()
1577    }
1578}
1579
1580#[repr(C)]
1581#[derive(Copy, Clone)]
1582pub struct GMimeFilterCharset {
1583    pub parent_object: GMimeFilter,
1584    pub from_charset: *mut c_char,
1585    pub to_charset: *mut c_char,
1586    pub cd: iconv_t,
1587}
1588
1589impl ::std::fmt::Debug for GMimeFilterCharset {
1590    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1591        f.debug_struct(&format!("GMimeFilterCharset @ {:?}", self as *const _))
1592         .field("parent_object", &self.parent_object)
1593         .field("from_charset", &self.from_charset)
1594         .field("to_charset", &self.to_charset)
1595         .field("cd", &self.cd)
1596         .finish()
1597    }
1598}
1599
1600#[repr(C)]
1601#[derive(Copy, Clone)]
1602pub struct GMimeFilterChecksum {
1603    pub parent_object: GMimeFilter,
1604    pub checksum: *mut glib::GChecksum,
1605}
1606
1607impl ::std::fmt::Debug for GMimeFilterChecksum {
1608    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1609        f.debug_struct(&format!("GMimeFilterChecksum @ {:?}", self as *const _))
1610         .field("parent_object", &self.parent_object)
1611         .field("checksum", &self.checksum)
1612         .finish()
1613    }
1614}
1615
1616#[repr(C)]
1617#[derive(Copy, Clone)]
1618pub struct GMimeFilterDos2Unix {
1619    pub parent_object: GMimeFilter,
1620    pub ensure_newline: gboolean,
1621    pub pc: c_char,
1622}
1623
1624impl ::std::fmt::Debug for GMimeFilterDos2Unix {
1625    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1626        f.debug_struct(&format!("GMimeFilterDos2Unix @ {:?}", self as *const _))
1627         .field("parent_object", &self.parent_object)
1628         .field("ensure_newline", &self.ensure_newline)
1629         .field("pc", &self.pc)
1630         .finish()
1631    }
1632}
1633
1634#[repr(C)]
1635#[derive(Copy, Clone)]
1636pub struct GMimeFilterEnriched {
1637    pub parent_object: GMimeFilter,
1638    pub flags: u32,
1639    pub nofill: c_int,
1640}
1641
1642impl ::std::fmt::Debug for GMimeFilterEnriched {
1643    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1644        f.debug_struct(&format!("GMimeFilterEnriched @ {:?}", self as *const _))
1645         .field("parent_object", &self.parent_object)
1646         .field("flags", &self.flags)
1647         .field("nofill", &self.nofill)
1648         .finish()
1649    }
1650}
1651
1652#[repr(C)]
1653#[derive(Copy, Clone)]
1654pub struct GMimeFilterFrom {
1655    pub parent_object: GMimeFilter,
1656    pub mode: GMimeFilterFromMode,
1657    pub midline: gboolean,
1658}
1659
1660impl ::std::fmt::Debug for GMimeFilterFrom {
1661    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1662        f.debug_struct(&format!("GMimeFilterFrom @ {:?}", self as *const _))
1663         .field("parent_object", &self.parent_object)
1664         .field("mode", &self.mode)
1665         .field("midline", &self.midline)
1666         .finish()
1667    }
1668}
1669
1670#[repr(C)]
1671#[derive(Copy, Clone)]
1672pub struct GMimeFilterGZip {
1673    pub parent_object: GMimeFilter,
1674    pub priv_: *mut _GMimeFilterGZipPrivate,
1675    pub mode: GMimeFilterGZipMode,
1676    pub level: c_int,
1677}
1678
1679impl ::std::fmt::Debug for GMimeFilterGZip {
1680    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1681        f.debug_struct(&format!("GMimeFilterGZip @ {:?}", self as *const _))
1682         .field("parent_object", &self.parent_object)
1683         .field("mode", &self.mode)
1684         .field("level", &self.level)
1685         .finish()
1686    }
1687}
1688
1689#[repr(C)]
1690pub struct GMimeFilterHTML {
1691    pub parent_object: GMimeFilter,
1692    pub scanner: *mut _UrlScanner,
1693    pub flags: u32,
1694    pub colour: u32,
1695    pub column: u32,
1696    _truncated_record_marker: c_void,
1697    // field pre_open has incomplete type
1698}
1699
1700impl ::std::fmt::Debug for GMimeFilterHTML {
1701    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1702        f.debug_struct(&format!("GMimeFilterHTML @ {:?}", self as *const _))
1703         .field("parent_object", &self.parent_object)
1704         .field("scanner", &self.scanner)
1705         .field("flags", &self.flags)
1706         .field("colour", &self.colour)
1707         .field("column", &self.column)
1708         .finish()
1709    }
1710}
1711
1712#[repr(C)]
1713#[derive(Copy, Clone)]
1714pub struct GMimeFilterOpenPGP {
1715    pub parent_object: GMimeFilter,
1716    pub state: GMimeOpenPGPState,
1717    pub seen_end_marker: gboolean,
1718    pub midline: gboolean,
1719    pub begin_offset: i64,
1720    pub end_offset: i64,
1721    pub position: i64,
1722    pub next: c_uint,
1723}
1724
1725impl ::std::fmt::Debug for GMimeFilterOpenPGP {
1726    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1727        f.debug_struct(&format!("GMimeFilterOpenPGP @ {:?}", self as *const _))
1728         .field("parent_object", &self.parent_object)
1729         .finish()
1730    }
1731}
1732
1733#[repr(C)]
1734#[derive(Copy, Clone)]
1735pub struct GMimeFilterSmtpData {
1736    pub parent_object: GMimeFilter,
1737    pub bol: gboolean,
1738}
1739
1740impl ::std::fmt::Debug for GMimeFilterSmtpData {
1741    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1742        f.debug_struct(&format!("GMimeFilterSmtpData @ {:?}", self as *const _))
1743         .field("parent_object", &self.parent_object)
1744         .field("bol", &self.bol)
1745         .finish()
1746    }
1747}
1748
1749#[repr(C)]
1750#[derive(Copy, Clone)]
1751pub struct GMimeFilterStrip {
1752    pub parent_object: GMimeFilter,
1753    pub lwsp: *mut c_void,
1754}
1755
1756impl ::std::fmt::Debug for GMimeFilterStrip {
1757    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1758        f.debug_struct(&format!("GMimeFilterStrip @ {:?}", self as *const _))
1759         .field("parent_object", &self.parent_object)
1760         .finish()
1761    }
1762}
1763
1764#[repr(C)]
1765#[derive(Copy, Clone)]
1766pub struct GMimeFilterUnix2Dos {
1767    pub parent_object: GMimeFilter,
1768    pub ensure_newline: gboolean,
1769    pub pc: c_char,
1770}
1771
1772impl ::std::fmt::Debug for GMimeFilterUnix2Dos {
1773    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1774        f.debug_struct(&format!("GMimeFilterUnix2Dos @ {:?}", self as *const _))
1775         .field("parent_object", &self.parent_object)
1776         .field("ensure_newline", &self.ensure_newline)
1777         .field("pc", &self.pc)
1778         .finish()
1779    }
1780}
1781
1782#[repr(C)]
1783#[derive(Copy, Clone)]
1784pub struct GMimeFilterWindows {
1785    pub parent_object: GMimeFilter,
1786    pub is_windows: gboolean,
1787    pub claimed_charset: *mut c_char,
1788}
1789
1790impl ::std::fmt::Debug for GMimeFilterWindows {
1791    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1792        f.debug_struct(&format!("GMimeFilterWindows @ {:?}", self as *const _))
1793         .field("parent_object", &self.parent_object)
1794         .field("is_windows", &self.is_windows)
1795         .field("claimed_charset", &self.claimed_charset)
1796         .finish()
1797    }
1798}
1799
1800#[repr(C)]
1801#[derive(Copy, Clone)]
1802pub struct GMimeFilterYenc {
1803    pub parent_object: GMimeFilter,
1804    pub encode: gboolean,
1805    pub part: c_int,
1806    pub state: c_int,
1807    pub pcrc: u32,
1808    pub crc: u32,
1809}
1810
1811impl ::std::fmt::Debug for GMimeFilterYenc {
1812    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1813        f.debug_struct(&format!("GMimeFilterYenc @ {:?}", self as *const _))
1814         .field("parent_object", &self.parent_object)
1815         .field("encode", &self.encode)
1816         .field("part", &self.part)
1817         .field("state", &self.state)
1818         .field("pcrc", &self.pcrc)
1819         .field("crc", &self.crc)
1820         .finish()
1821    }
1822}
1823
1824#[repr(C)]
1825pub struct GMimeGpgContext(c_void);
1826
1827impl ::std::fmt::Debug for GMimeGpgContext {
1828    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1829        f.debug_struct(&format!("GMimeGpgContext @ {:?}", self as *const _))
1830         .finish()
1831    }
1832}
1833
1834#[repr(C)]
1835#[derive(Copy, Clone)]
1836pub struct GMimeHeader {
1837    pub parent_object: gobject::GObject,
1838    pub name: *mut c_char,
1839    pub value: *mut c_char,
1840    pub formatter: GMimeHeaderRawValueFormatter,
1841    pub options: *mut GMimeParserOptions,
1842    pub reformat: gboolean,
1843    pub changed: gpointer,
1844    pub raw_value: *mut c_char,
1845    pub raw_name: *mut c_char,
1846    pub charset: *mut c_char,
1847    pub offset: i64,
1848}
1849
1850impl ::std::fmt::Debug for GMimeHeader {
1851    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1852        f.debug_struct(&format!("GMimeHeader @ {:?}", self as *const _))
1853         .finish()
1854    }
1855}
1856
1857#[repr(C)]
1858#[derive(Copy, Clone)]
1859pub struct GMimeHeaderList {
1860    pub parent_object: gobject::GObject,
1861    pub options: *mut GMimeParserOptions,
1862    pub changed: gpointer,
1863    pub hash: *mut glib::GHashTable,
1864    pub array: *mut glib::GPtrArray,
1865}
1866
1867impl ::std::fmt::Debug for GMimeHeaderList {
1868    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1869        f.debug_struct(&format!("GMimeHeaderList @ {:?}", self as *const _))
1870         .field("parent_object", &self.parent_object)
1871         .finish()
1872    }
1873}
1874
1875#[repr(C)]
1876#[derive(Copy, Clone)]
1877pub struct GMimeMessage {
1878    pub parent_object: GMimeObject,
1879    pub addrlists: *mut *mut InternetAddressList,
1880    pub mime_part: *mut GMimeObject,
1881    pub message_id: *mut c_char,
1882    pub date: *mut glib::GDateTime,
1883    pub subject: *mut c_char,
1884    pub marker: *mut c_char,
1885}
1886
1887impl ::std::fmt::Debug for GMimeMessage {
1888    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1889        f.debug_struct(&format!("GMimeMessage @ {:?}", self as *const _))
1890         .field("parent_object", &self.parent_object)
1891         .field("addrlists", &self.addrlists)
1892         .field("mime_part", &self.mime_part)
1893         .field("message_id", &self.message_id)
1894         .field("date", &self.date)
1895         .field("subject", &self.subject)
1896         .finish()
1897    }
1898}
1899
1900#[repr(C)]
1901#[derive(Copy, Clone)]
1902pub struct GMimeMessagePart {
1903    pub parent_object: GMimeObject,
1904    pub message: *mut GMimeMessage,
1905}
1906
1907impl ::std::fmt::Debug for GMimeMessagePart {
1908    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1909        f.debug_struct(&format!("GMimeMessagePart @ {:?}", self as *const _))
1910         .field("parent_object", &self.parent_object)
1911         .field("message", &self.message)
1912         .finish()
1913    }
1914}
1915
1916#[repr(C)]
1917#[derive(Copy, Clone)]
1918pub struct GMimeMessagePartial {
1919    pub parent_object: GMimePart,
1920    pub number: c_int,
1921    pub total: c_int,
1922    pub id: *mut c_char,
1923}
1924
1925impl ::std::fmt::Debug for GMimeMessagePartial {
1926    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1927        f.debug_struct(&format!("GMimeMessagePartial @ {:?}", self as *const _))
1928         .field("parent_object", &self.parent_object)
1929         .field("number", &self.number)
1930         .field("total", &self.total)
1931         .field("id", &self.id)
1932         .finish()
1933    }
1934}
1935
1936#[repr(C)]
1937#[derive(Copy, Clone)]
1938pub struct GMimeMultipart {
1939    pub parent_object: GMimeObject,
1940    pub children: *mut glib::GPtrArray,
1941    pub boundary: *mut c_char,
1942    pub prologue: *mut c_char,
1943    pub epilogue: *mut c_char,
1944    pub write_end_boundary: gboolean,
1945}
1946
1947impl ::std::fmt::Debug for GMimeMultipart {
1948    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1949        f.debug_struct(&format!("GMimeMultipart @ {:?}", self as *const _))
1950         .field("parent_object", &self.parent_object)
1951         .field("children", &self.children)
1952         .field("boundary", &self.boundary)
1953         .field("prologue", &self.prologue)
1954         .field("epilogue", &self.epilogue)
1955         .finish()
1956    }
1957}
1958
1959#[repr(C)]
1960#[derive(Copy, Clone)]
1961pub struct GMimeMultipartEncrypted {
1962    pub parent_object: GMimeMultipart,
1963}
1964
1965impl ::std::fmt::Debug for GMimeMultipartEncrypted {
1966    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1967        f.debug_struct(&format!("GMimeMultipartEncrypted @ {:?}", self as *const _))
1968         .field("parent_object", &self.parent_object)
1969         .finish()
1970    }
1971}
1972
1973#[repr(C)]
1974#[derive(Copy, Clone)]
1975pub struct GMimeMultipartSigned {
1976    pub parent_object: GMimeMultipart,
1977}
1978
1979impl ::std::fmt::Debug for GMimeMultipartSigned {
1980    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1981        f.debug_struct(&format!("GMimeMultipartSigned @ {:?}", self as *const _))
1982         .field("parent_object", &self.parent_object)
1983         .finish()
1984    }
1985}
1986
1987#[repr(C)]
1988#[derive(Copy, Clone)]
1989pub struct GMimeObject {
1990    pub parent_object: gobject::GObject,
1991    pub disposition: *mut GMimeContentDisposition,
1992    pub content_type: *mut GMimeContentType,
1993    pub headers: *mut GMimeHeaderList,
1994    pub content_id: *mut c_char,
1995    pub ensure_newline: gboolean,
1996}
1997
1998impl ::std::fmt::Debug for GMimeObject {
1999    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2000        f.debug_struct(&format!("GMimeObject @ {:?}", self as *const _))
2001         .field("parent_object", &self.parent_object)
2002         .field("disposition", &self.disposition)
2003         .field("content_type", &self.content_type)
2004         .field("headers", &self.headers)
2005         .field("content_id", &self.content_id)
2006         .finish()
2007    }
2008}
2009
2010#[repr(C)]
2011#[derive(Copy, Clone)]
2012pub struct GMimeParam {
2013    pub parent_object: gobject::GObject,
2014    pub method: GMimeParamEncodingMethod,
2015    pub charset: *mut c_char,
2016    pub lang: *mut c_char,
2017    pub name: *mut c_char,
2018    pub value: *mut c_char,
2019    pub changed: gpointer,
2020}
2021
2022impl ::std::fmt::Debug for GMimeParam {
2023    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2024        f.debug_struct(&format!("GMimeParam @ {:?}", self as *const _))
2025         .field("parent_object", &self.parent_object)
2026         .field("method", &self.method)
2027         .field("charset", &self.charset)
2028         .field("lang", &self.lang)
2029         .field("name", &self.name)
2030         .field("value", &self.value)
2031         .finish()
2032    }
2033}
2034
2035#[repr(C)]
2036#[derive(Copy, Clone)]
2037pub struct GMimeParamList {
2038    pub parent_object: gobject::GObject,
2039    pub array: *mut glib::GPtrArray,
2040    pub changed: gpointer,
2041}
2042
2043impl ::std::fmt::Debug for GMimeParamList {
2044    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2045        f.debug_struct(&format!("GMimeParamList @ {:?}", self as *const _))
2046         .finish()
2047    }
2048}
2049
2050#[repr(C)]
2051#[derive(Copy, Clone)]
2052pub struct GMimeParser {
2053    pub parent_object: gobject::GObject,
2054    pub priv_: *mut _GMimeParserPrivate,
2055}
2056
2057impl ::std::fmt::Debug for GMimeParser {
2058    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2059        f.debug_struct(&format!("GMimeParser @ {:?}", self as *const _))
2060         .field("parent_object", &self.parent_object)
2061         .finish()
2062    }
2063}
2064
2065#[repr(C)]
2066#[derive(Copy, Clone)]
2067pub struct GMimePart {
2068    pub parent_object: GMimeObject,
2069    pub encoding: GMimeContentEncoding,
2070    pub openpgp: GMimeOpenPGPData,
2071    pub content_description: *mut c_char,
2072    pub content_location: *mut c_char,
2073    pub content_md5: *mut c_char,
2074    pub content: *mut GMimeDataWrapper,
2075}
2076
2077impl ::std::fmt::Debug for GMimePart {
2078    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2079        f.debug_struct(&format!("GMimePart @ {:?}", self as *const _))
2080         .field("parent_object", &self.parent_object)
2081         .field("encoding", &self.encoding)
2082         .field("openpgp", &self.openpgp)
2083         .field("content_description", &self.content_description)
2084         .field("content_location", &self.content_location)
2085         .field("content_md5", &self.content_md5)
2086         .field("content", &self.content)
2087         .finish()
2088    }
2089}
2090
2091#[repr(C)]
2092pub struct GMimePkcs7Context(c_void);
2093
2094impl ::std::fmt::Debug for GMimePkcs7Context {
2095    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2096        f.debug_struct(&format!("GMimePkcs7Context @ {:?}", self as *const _))
2097         .finish()
2098    }
2099}
2100
2101#[repr(C)]
2102#[derive(Copy, Clone)]
2103pub struct GMimeSignature {
2104    pub parent_object: gobject::GObject,
2105    pub status: GMimeSignatureStatus,
2106    pub cert: *mut GMimeCertificate,
2107    pub created: c_long,
2108    pub expires: c_long,
2109}
2110
2111impl ::std::fmt::Debug for GMimeSignature {
2112    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2113        f.debug_struct(&format!("GMimeSignature @ {:?}", self as *const _))
2114         .field("parent_object", &self.parent_object)
2115         .field("status", &self.status)
2116         .field("cert", &self.cert)
2117         .field("created", &self.created)
2118         .field("expires", &self.expires)
2119         .finish()
2120    }
2121}
2122
2123#[repr(C)]
2124#[derive(Copy, Clone)]
2125pub struct GMimeSignatureList {
2126    pub parent_object: gobject::GObject,
2127    pub array: *mut glib::GPtrArray,
2128}
2129
2130impl ::std::fmt::Debug for GMimeSignatureList {
2131    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2132        f.debug_struct(&format!("GMimeSignatureList @ {:?}", self as *const _))
2133         .field("parent_object", &self.parent_object)
2134         .finish()
2135    }
2136}
2137
2138#[repr(C)]
2139#[derive(Copy, Clone)]
2140pub struct GMimeStream {
2141    pub parent_object: gobject::GObject,
2142    pub super_stream: *mut GMimeStream,
2143    pub position: i64,
2144    pub bound_start: i64,
2145    pub bound_end: i64,
2146}
2147
2148impl ::std::fmt::Debug for GMimeStream {
2149    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2150        f.debug_struct(&format!("GMimeStream @ {:?}", self as *const _))
2151         .finish()
2152    }
2153}
2154
2155#[repr(C)]
2156#[derive(Copy, Clone)]
2157pub struct GMimeStreamBuffer {
2158    pub parent_object: GMimeStream,
2159    pub mode: GMimeStreamBufferMode,
2160    pub source: *mut GMimeStream,
2161    pub buffer: *mut c_char,
2162    pub bufptr: *mut c_char,
2163    pub bufend: *mut c_char,
2164    pub buflen: size_t,
2165}
2166
2167impl ::std::fmt::Debug for GMimeStreamBuffer {
2168    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2169        f.debug_struct(&format!("GMimeStreamBuffer @ {:?}", self as *const _))
2170         .field("parent_object", &self.parent_object)
2171         .field("mode", &self.mode)
2172         .field("source", &self.source)
2173         .field("buffer", &self.buffer)
2174         .field("bufptr", &self.bufptr)
2175         .field("bufend", &self.bufend)
2176         .field("buflen", &self.buflen)
2177         .finish()
2178    }
2179}
2180
2181#[repr(C)]
2182#[derive(Copy, Clone)]
2183pub struct GMimeStreamCat {
2184    pub parent_object: GMimeStream,
2185    pub sources: *mut _cat_node,
2186    pub current: *mut _cat_node,
2187}
2188
2189impl ::std::fmt::Debug for GMimeStreamCat {
2190    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2191        f.debug_struct(&format!("GMimeStreamCat @ {:?}", self as *const _))
2192         .field("parent_object", &self.parent_object)
2193         .field("sources", &self.sources)
2194         .field("current", &self.current)
2195         .finish()
2196    }
2197}
2198
2199#[repr(C)]
2200#[derive(Copy, Clone)]
2201pub struct GMimeStreamFile {
2202    pub parent_object: GMimeStream,
2203    pub owner: gboolean,
2204    pub fp: *mut FILE,
2205}
2206
2207impl ::std::fmt::Debug for GMimeStreamFile {
2208    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2209        f.debug_struct(&format!("GMimeStreamFile @ {:?}", self as *const _))
2210         .field("parent_object", &self.parent_object)
2211         .field("owner", &self.owner)
2212         .field("fp", &self.fp)
2213         .finish()
2214    }
2215}
2216
2217#[repr(C)]
2218#[derive(Copy, Clone)]
2219pub struct GMimeStreamFilter {
2220    pub parent_object: GMimeStream,
2221    pub priv_: *mut _GMimeStreamFilterPrivate,
2222    pub source: *mut GMimeStream,
2223    pub owner: gboolean,
2224}
2225
2226impl ::std::fmt::Debug for GMimeStreamFilter {
2227    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2228        f.debug_struct(&format!("GMimeStreamFilter @ {:?}", self as *const _))
2229         .field("parent_object", &self.parent_object)
2230         .field("source", &self.source)
2231         .field("owner", &self.owner)
2232         .finish()
2233    }
2234}
2235
2236#[repr(C)]
2237#[derive(Copy, Clone)]
2238pub struct GMimeStreamFs {
2239    pub parent_object: GMimeStream,
2240    pub owner: gboolean,
2241    pub eos: gboolean,
2242    pub fd: c_int,
2243}
2244
2245impl ::std::fmt::Debug for GMimeStreamFs {
2246    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2247        f.debug_struct(&format!("GMimeStreamFs @ {:?}", self as *const _))
2248         .field("parent_object", &self.parent_object)
2249         .field("owner", &self.owner)
2250         .field("eos", &self.eos)
2251         .field("fd", &self.fd)
2252         .finish()
2253    }
2254}
2255
2256#[repr(C)]
2257#[derive(Copy, Clone)]
2258pub struct GMimeStreamGIO {
2259    pub parent_object: GMimeStream,
2260    pub ostream: *mut gio::GOutputStream,
2261    pub istream: *mut gio::GInputStream,
2262    pub file: *mut gio::GFile,
2263    pub owner: gboolean,
2264    pub eos: gboolean,
2265}
2266
2267impl ::std::fmt::Debug for GMimeStreamGIO {
2268    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2269        f.debug_struct(&format!("GMimeStreamGIO @ {:?}", self as *const _))
2270         .field("parent_object", &self.parent_object)
2271         .field("ostream", &self.ostream)
2272         .field("istream", &self.istream)
2273         .field("file", &self.file)
2274         .field("owner", &self.owner)
2275         .field("eos", &self.eos)
2276         .finish()
2277    }
2278}
2279
2280#[repr(C)]
2281#[derive(Copy, Clone)]
2282pub struct GMimeStreamMem {
2283    pub parent_object: GMimeStream,
2284    pub buffer: *mut glib::GByteArray,
2285    pub owner: gboolean,
2286}
2287
2288impl ::std::fmt::Debug for GMimeStreamMem {
2289    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2290        f.debug_struct(&format!("GMimeStreamMem @ {:?}", self as *const _))
2291         .field("parent_object", &self.parent_object)
2292         .field("buffer", &self.buffer)
2293         .field("owner", &self.owner)
2294         .finish()
2295    }
2296}
2297
2298#[repr(C)]
2299#[derive(Copy, Clone)]
2300pub struct GMimeStreamMmap {
2301    pub parent_object: GMimeStream,
2302    pub owner: gboolean,
2303    pub eos: gboolean,
2304    pub fd: c_int,
2305    pub map: *mut c_char,
2306    pub maplen: size_t,
2307}
2308
2309impl ::std::fmt::Debug for GMimeStreamMmap {
2310    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2311        f.debug_struct(&format!("GMimeStreamMmap @ {:?}", self as *const _))
2312         .field("parent_object", &self.parent_object)
2313         .field("owner", &self.owner)
2314         .field("eos", &self.eos)
2315         .field("fd", &self.fd)
2316         .field("map", &self.map)
2317         .field("maplen", &self.maplen)
2318         .finish()
2319    }
2320}
2321
2322#[repr(C)]
2323#[derive(Copy, Clone)]
2324pub struct GMimeStreamNull {
2325    pub parent_object: GMimeStream,
2326    pub written: size_t,
2327    pub newlines: size_t,
2328    pub count_newlines: gboolean,
2329}
2330
2331impl ::std::fmt::Debug for GMimeStreamNull {
2332    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2333        f.debug_struct(&format!("GMimeStreamNull @ {:?}", self as *const _))
2334         .field("parent_object", &self.parent_object)
2335         .field("written", &self.written)
2336         .field("newlines", &self.newlines)
2337         .field("count_newlines", &self.count_newlines)
2338         .finish()
2339    }
2340}
2341
2342#[repr(C)]
2343#[derive(Copy, Clone)]
2344pub struct GMimeStreamPipe {
2345    pub parent_object: GMimeStream,
2346    pub owner: gboolean,
2347    pub eos: gboolean,
2348    pub fd: c_int,
2349}
2350
2351impl ::std::fmt::Debug for GMimeStreamPipe {
2352    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2353        f.debug_struct(&format!("GMimeStreamPipe @ {:?}", self as *const _))
2354         .field("parent_object", &self.parent_object)
2355         .field("owner", &self.owner)
2356         .field("eos", &self.eos)
2357         .field("fd", &self.fd)
2358         .finish()
2359    }
2360}
2361
2362#[repr(C)]
2363#[derive(Copy, Clone)]
2364pub struct GMimeTextPart {
2365    pub parent_object: GMimePart,
2366}
2367
2368impl ::std::fmt::Debug for GMimeTextPart {
2369    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2370        f.debug_struct(&format!("GMimeTextPart @ {:?}", self as *const _))
2371         .field("parent_object", &self.parent_object)
2372         .finish()
2373    }
2374}
2375
2376#[repr(C)]
2377#[derive(Copy, Clone)]
2378pub struct InternetAddress {
2379    pub parent_object: gobject::GObject,
2380    pub charset: *mut c_char,
2381    pub name: *mut c_char,
2382    pub changed: gpointer,
2383}
2384
2385impl ::std::fmt::Debug for InternetAddress {
2386    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2387        f.debug_struct(&format!("InternetAddress @ {:?}", self as *const _))
2388         .field("parent_object", &self.parent_object)
2389         .field("charset", &self.charset)
2390         .field("name", &self.name)
2391         .finish()
2392    }
2393}
2394
2395#[repr(C)]
2396#[derive(Copy, Clone)]
2397pub struct InternetAddressGroup {
2398    pub parent_object: InternetAddress,
2399    pub members: *mut InternetAddressList,
2400}
2401
2402impl ::std::fmt::Debug for InternetAddressGroup {
2403    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2404        f.debug_struct(&format!("InternetAddressGroup @ {:?}", self as *const _))
2405         .field("parent_object", &self.parent_object)
2406         .field("members", &self.members)
2407         .finish()
2408    }
2409}
2410
2411#[repr(C)]
2412#[derive(Copy, Clone)]
2413pub struct InternetAddressList {
2414    pub parent_object: gobject::GObject,
2415    pub array: *mut glib::GPtrArray,
2416    pub changed: gpointer,
2417}
2418
2419impl ::std::fmt::Debug for InternetAddressList {
2420    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2421        f.debug_struct(&format!("InternetAddressList @ {:?}", self as *const _))
2422         .field("parent_object", &self.parent_object)
2423         .field("array", &self.array)
2424         .finish()
2425    }
2426}
2427
2428#[repr(C)]
2429#[derive(Copy, Clone)]
2430pub struct InternetAddressMailbox {
2431    pub parent_object: InternetAddress,
2432    pub idn_addr: *mut c_char,
2433    pub addr: *mut c_char,
2434    pub at: c_int,
2435}
2436
2437impl ::std::fmt::Debug for InternetAddressMailbox {
2438    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
2439        f.debug_struct(&format!("InternetAddressMailbox @ {:?}", self as *const _))
2440         .field("parent_object", &self.parent_object)
2441         .field("idn_addr", &self.idn_addr)
2442         .field("addr", &self.addr)
2443         .field("at", &self.at)
2444         .finish()
2445    }
2446}
2447
2448#[link(name = "gmime-3.0")]
2449extern "C" {
2450
2451    //=========================================================================
2452    // GMimeCharset
2453    //=========================================================================
2454    pub fn g_mime_charset_best_name(charset: *mut GMimeCharset) -> *const c_char;
2455    pub fn g_mime_charset_can_encode(mask: *mut GMimeCharset, charset: *const c_char, text: *const c_char, len: size_t) -> gboolean;
2456    pub fn g_mime_charset_init(charset: *mut GMimeCharset);
2457    pub fn g_mime_charset_step(charset: *mut GMimeCharset, inbuf: *const c_char, inlen: size_t);
2458    pub fn g_mime_charset_best(inbuf: *const c_char, inlen: size_t) -> *const c_char;
2459    pub fn g_mime_charset_canon_name(charset: *const c_char) -> *const c_char;
2460    pub fn g_mime_charset_iconv_name(charset: *const c_char) -> *const c_char;
2461    pub fn g_mime_charset_iso_to_windows(isocharset: *const c_char) -> *const c_char;
2462    pub fn g_mime_charset_language(charset: *const c_char) -> *const c_char;
2463    pub fn g_mime_charset_locale_name() -> *const c_char;
2464    pub fn g_mime_charset_map_init();
2465    pub fn g_mime_charset_map_shutdown();
2466    pub fn g_mime_charset_name(charset: *const c_char) -> *const c_char;
2467
2468    //=========================================================================
2469    // GMimeEncoding
2470    //=========================================================================
2471    pub fn g_mime_encoding_flush(state: *mut GMimeEncoding, inbuf: *const c_char, inlen: size_t, outbuf: *mut c_char) -> size_t;
2472    pub fn g_mime_encoding_init_decode(state: *mut GMimeEncoding, encoding: GMimeContentEncoding);
2473    pub fn g_mime_encoding_init_encode(state: *mut GMimeEncoding, encoding: GMimeContentEncoding);
2474    pub fn g_mime_encoding_outlen(state: *mut GMimeEncoding, inlen: size_t) -> size_t;
2475    pub fn g_mime_encoding_reset(state: *mut GMimeEncoding);
2476    pub fn g_mime_encoding_step(state: *mut GMimeEncoding, inbuf: *const c_char, inlen: size_t, outbuf: *mut c_char) -> size_t;
2477    pub fn g_mime_encoding_base64_decode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2478    pub fn g_mime_encoding_base64_encode_close(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2479    pub fn g_mime_encoding_base64_encode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2480    pub fn g_mime_encoding_quoted_decode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2481    pub fn g_mime_encoding_quoted_encode_close(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2482    pub fn g_mime_encoding_quoted_encode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2483    pub fn g_mime_encoding_uudecode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2484    pub fn g_mime_encoding_uuencode_close(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, uubuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2485    pub fn g_mime_encoding_uuencode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, uubuf: *mut u8, state: *mut c_int, save: *mut u32) -> size_t;
2486
2487    //=========================================================================
2488    // GMimeFormatOptions
2489    //=========================================================================
2490    pub fn g_mime_format_options_get_type() -> GType;
2491    pub fn g_mime_format_options_new() -> *mut GMimeFormatOptions;
2492    pub fn g_mime_format_options_add_hidden_header(options: *mut GMimeFormatOptions, header: *const c_char);
2493    pub fn g_mime_format_options_clear_hidden_headers(options: *mut GMimeFormatOptions);
2494    pub fn g_mime_format_options_clone(options: *mut GMimeFormatOptions) -> *mut GMimeFormatOptions;
2495    pub fn g_mime_format_options_create_newline_filter(options: *mut GMimeFormatOptions, ensure_newline: gboolean) -> *mut GMimeFilter;
2496    pub fn g_mime_format_options_free(options: *mut GMimeFormatOptions);
2497    pub fn g_mime_format_options_get_newline(options: *mut GMimeFormatOptions) -> *const c_char;
2498    pub fn g_mime_format_options_get_newline_format(options: *mut GMimeFormatOptions) -> GMimeNewLineFormat;
2499    pub fn g_mime_format_options_get_param_encoding_method(options: *mut GMimeFormatOptions) -> GMimeParamEncodingMethod;
2500    pub fn g_mime_format_options_is_hidden_header(options: *mut GMimeFormatOptions, header: *const c_char) -> gboolean;
2501    pub fn g_mime_format_options_remove_hidden_header(options: *mut GMimeFormatOptions, header: *const c_char);
2502    pub fn g_mime_format_options_set_newline_format(options: *mut GMimeFormatOptions, newline: GMimeNewLineFormat);
2503    pub fn g_mime_format_options_set_param_encoding_method(options: *mut GMimeFormatOptions, method: GMimeParamEncodingMethod);
2504    pub fn g_mime_format_options_get_default() -> *mut GMimeFormatOptions;
2505
2506    //=========================================================================
2507    // GMimeParserOptions
2508    //=========================================================================
2509    pub fn g_mime_parser_options_get_type() -> GType;
2510    pub fn g_mime_parser_options_new() -> *mut GMimeParserOptions;
2511    pub fn g_mime_parser_options_clone(options: *mut GMimeParserOptions) -> *mut GMimeParserOptions;
2512    pub fn g_mime_parser_options_free(options: *mut GMimeParserOptions);
2513    pub fn g_mime_parser_options_get_address_compliance_mode(options: *mut GMimeParserOptions) -> GMimeRfcComplianceMode;
2514    pub fn g_mime_parser_options_get_allow_addresses_without_domain(options: *mut GMimeParserOptions) -> gboolean;
2515    pub fn g_mime_parser_options_get_fallback_charsets(options: *mut GMimeParserOptions) -> *mut *const c_char;
2516    pub fn g_mime_parser_options_get_parameter_compliance_mode(options: *mut GMimeParserOptions) -> GMimeRfcComplianceMode;
2517    pub fn g_mime_parser_options_get_rfc2047_compliance_mode(options: *mut GMimeParserOptions) -> GMimeRfcComplianceMode;
2518    pub fn g_mime_parser_options_get_warning_callback(options: *mut GMimeParserOptions) -> GMimeParserWarningFunc;
2519    pub fn g_mime_parser_options_set_address_compliance_mode(options: *mut GMimeParserOptions, mode: GMimeRfcComplianceMode);
2520    pub fn g_mime_parser_options_set_allow_addresses_without_domain(options: *mut GMimeParserOptions, allow: gboolean);
2521    pub fn g_mime_parser_options_set_fallback_charsets(options: *mut GMimeParserOptions, charsets: *mut *const c_char);
2522    pub fn g_mime_parser_options_set_parameter_compliance_mode(options: *mut GMimeParserOptions, mode: GMimeRfcComplianceMode);
2523    pub fn g_mime_parser_options_set_rfc2047_compliance_mode(options: *mut GMimeParserOptions, mode: GMimeRfcComplianceMode);
2524    pub fn g_mime_parser_options_set_warning_callback(options: *mut GMimeParserOptions, warning_cb: GMimeParserWarningFunc, user_data: gpointer);
2525    pub fn g_mime_parser_options_get_default() -> *mut GMimeParserOptions;
2526
2527    //=========================================================================
2528    // GMimePartIter
2529    //=========================================================================
2530    pub fn g_mime_part_iter_get_type() -> GType;
2531    pub fn g_mime_part_iter_new(toplevel: *mut GMimeObject) -> *mut GMimePartIter;
2532    pub fn g_mime_part_iter_clone(iter: *mut GMimePartIter) -> *mut GMimePartIter;
2533    pub fn g_mime_part_iter_free(iter: *mut GMimePartIter);
2534    pub fn g_mime_part_iter_get_current(iter: *mut GMimePartIter) -> *mut GMimeObject;
2535    pub fn g_mime_part_iter_get_parent(iter: *mut GMimePartIter) -> *mut GMimeObject;
2536    pub fn g_mime_part_iter_get_path(iter: *mut GMimePartIter) -> *mut c_char;
2537    pub fn g_mime_part_iter_get_toplevel(iter: *mut GMimePartIter) -> *mut GMimeObject;
2538    pub fn g_mime_part_iter_is_valid(iter: *mut GMimePartIter) -> gboolean;
2539    pub fn g_mime_part_iter_jump_to(iter: *mut GMimePartIter, path: *const c_char) -> gboolean;
2540    pub fn g_mime_part_iter_next(iter: *mut GMimePartIter) -> gboolean;
2541    pub fn g_mime_part_iter_prev(iter: *mut GMimePartIter) -> gboolean;
2542    pub fn g_mime_part_iter_remove(iter: *mut GMimePartIter) -> gboolean;
2543    pub fn g_mime_part_iter_replace(iter: *mut GMimePartIter, replacement: *mut GMimeObject) -> gboolean;
2544    pub fn g_mime_part_iter_reset(iter: *mut GMimePartIter);
2545
2546    //=========================================================================
2547    // GMimeReferences
2548    //=========================================================================
2549    pub fn g_mime_references_get_type() -> GType;
2550    pub fn g_mime_references_new() -> *mut GMimeReferences;
2551    pub fn g_mime_references_append(refs: *mut GMimeReferences, msgid: *const c_char);
2552    pub fn g_mime_references_clear(refs: *mut GMimeReferences);
2553    pub fn g_mime_references_copy(refs: *mut GMimeReferences) -> *mut GMimeReferences;
2554    pub fn g_mime_references_free(refs: *mut GMimeReferences);
2555    pub fn g_mime_references_get_message_id(refs: *mut GMimeReferences, index: c_int) -> *const c_char;
2556    pub fn g_mime_references_length(refs: *mut GMimeReferences) -> c_int;
2557    pub fn g_mime_references_set_message_id(refs: *mut GMimeReferences, index: c_int, msgid: *const c_char);
2558    pub fn g_mime_references_parse(options: *mut GMimeParserOptions, text: *const c_char) -> *mut GMimeReferences;
2559
2560    //=========================================================================
2561    // GMimeApplicationPkcs7Mime
2562    //=========================================================================
2563    pub fn g_mime_application_pkcs7_mime_get_type() -> GType;
2564    pub fn g_mime_application_pkcs7_mime_new(type_: GMimeSecureMimeType) -> *mut GMimeApplicationPkcs7Mime;
2565    pub fn g_mime_application_pkcs7_mime_encrypt(entity: *mut GMimeObject, flags: GMimeEncryptFlags, recipients: *mut glib::GPtrArray, error: *mut *mut glib::GError) -> *mut GMimeApplicationPkcs7Mime;
2566    pub fn g_mime_application_pkcs7_mime_sign(entity: *mut GMimeObject, userid: *const c_char, error: *mut *mut glib::GError) -> *mut GMimeApplicationPkcs7Mime;
2567    pub fn g_mime_application_pkcs7_mime_decrypt(pkcs7_mime: *mut GMimeApplicationPkcs7Mime, flags: GMimeDecryptFlags, session_key: *const c_char, result: *mut *mut GMimeDecryptResult, error: *mut *mut glib::GError) -> *mut GMimeObject;
2568    pub fn g_mime_application_pkcs7_mime_get_smime_type(pkcs7_mime: *mut GMimeApplicationPkcs7Mime) -> GMimeSecureMimeType;
2569    pub fn g_mime_application_pkcs7_mime_verify(pkcs7_mime: *mut GMimeApplicationPkcs7Mime, flags: GMimeVerifyFlags, entity: *mut *mut GMimeObject, error: *mut *mut glib::GError) -> *mut GMimeSignatureList;
2570
2571    //=========================================================================
2572    // GMimeAutocryptHeader
2573    //=========================================================================
2574    pub fn g_mime_autocrypt_header_get_type() -> GType;
2575    pub fn g_mime_autocrypt_header_new() -> *mut GMimeAutocryptHeader;
2576    pub fn g_mime_autocrypt_header_new_from_string(string: *const c_char) -> *mut GMimeAutocryptHeader;
2577    pub fn g_mime_autocrypt_header_clone(dst: *mut GMimeAutocryptHeader, src: *mut GMimeAutocryptHeader);
2578    pub fn g_mime_autocrypt_header_compare(ah1: *mut GMimeAutocryptHeader, ah2: *mut GMimeAutocryptHeader) -> c_int;
2579    pub fn g_mime_autocrypt_header_get_address(ah: *mut GMimeAutocryptHeader) -> *mut InternetAddressMailbox;
2580    pub fn g_mime_autocrypt_header_get_address_as_string(ah: *mut GMimeAutocryptHeader) -> *const c_char;
2581    pub fn g_mime_autocrypt_header_get_effective_date(ah: *mut GMimeAutocryptHeader) -> *mut glib::GDateTime;
2582    pub fn g_mime_autocrypt_header_get_keydata(ah: *mut GMimeAutocryptHeader) -> *mut glib::GBytes;
2583    pub fn g_mime_autocrypt_header_get_prefer_encrypt(ah: *mut GMimeAutocryptHeader) -> GMimeAutocryptPreferEncrypt;
2584    pub fn g_mime_autocrypt_header_is_complete(ah: *mut GMimeAutocryptHeader) -> gboolean;
2585    pub fn g_mime_autocrypt_header_set_address(ah: *mut GMimeAutocryptHeader, address: *mut InternetAddressMailbox);
2586    pub fn g_mime_autocrypt_header_set_address_from_string(ah: *mut GMimeAutocryptHeader, address: *const c_char);
2587    pub fn g_mime_autocrypt_header_set_effective_date(ah: *mut GMimeAutocryptHeader, effective_date: *mut glib::GDateTime);
2588    pub fn g_mime_autocrypt_header_set_keydata(ah: *mut GMimeAutocryptHeader, data: *mut glib::GBytes);
2589    pub fn g_mime_autocrypt_header_set_prefer_encrypt(ah: *mut GMimeAutocryptHeader, pref: GMimeAutocryptPreferEncrypt);
2590    pub fn g_mime_autocrypt_header_to_string(ah: *mut GMimeAutocryptHeader, gossip: gboolean) -> *mut c_char;
2591
2592    //=========================================================================
2593    // GMimeAutocryptHeaderList
2594    //=========================================================================
2595    pub fn g_mime_autocrypt_header_list_get_type() -> GType;
2596    pub fn g_mime_autocrypt_header_list_new() -> *mut GMimeAutocryptHeaderList;
2597    pub fn g_mime_autocrypt_header_list_add(list: *mut GMimeAutocryptHeaderList, header: *mut GMimeAutocryptHeader);
2598    pub fn g_mime_autocrypt_header_list_add_missing_addresses(list: *mut GMimeAutocryptHeaderList, addresses: *mut InternetAddressList) -> c_uint;
2599    pub fn g_mime_autocrypt_header_list_get_count(list: *mut GMimeAutocryptHeaderList) -> c_uint;
2600    pub fn g_mime_autocrypt_header_list_get_header_at(list: *mut GMimeAutocryptHeaderList, index: c_uint) -> *mut GMimeAutocryptHeader;
2601    pub fn g_mime_autocrypt_header_list_get_header_for_address(list: *mut GMimeAutocryptHeaderList, mailbox: *mut InternetAddressMailbox) -> *mut GMimeAutocryptHeader;
2602    pub fn g_mime_autocrypt_header_list_remove_incomplete(list: *mut GMimeAutocryptHeaderList);
2603
2604    //=========================================================================
2605    // GMimeCertificate
2606    //=========================================================================
2607    pub fn g_mime_certificate_get_type() -> GType;
2608    pub fn g_mime_certificate_new() -> *mut GMimeCertificate;
2609    pub fn g_mime_certificate_get_created(cert: *mut GMimeCertificate) -> c_long;
2610    pub fn g_mime_certificate_get_created64(cert: *mut GMimeCertificate) -> i64;
2611    pub fn g_mime_certificate_get_digest_algo(cert: *mut GMimeCertificate) -> GMimeDigestAlgo;
2612    pub fn g_mime_certificate_get_email(cert: *mut GMimeCertificate) -> *const c_char;
2613    pub fn g_mime_certificate_get_expires(cert: *mut GMimeCertificate) -> c_long;
2614    pub fn g_mime_certificate_get_expires64(cert: *mut GMimeCertificate) -> i64;
2615    pub fn g_mime_certificate_get_fingerprint(cert: *mut GMimeCertificate) -> *const c_char;
2616    pub fn g_mime_certificate_get_id_validity(cert: *mut GMimeCertificate) -> GMimeValidity;
2617    pub fn g_mime_certificate_get_issuer_name(cert: *mut GMimeCertificate) -> *const c_char;
2618    pub fn g_mime_certificate_get_issuer_serial(cert: *mut GMimeCertificate) -> *const c_char;
2619    pub fn g_mime_certificate_get_key_id(cert: *mut GMimeCertificate) -> *const c_char;
2620    pub fn g_mime_certificate_get_name(cert: *mut GMimeCertificate) -> *const c_char;
2621    pub fn g_mime_certificate_get_pubkey_algo(cert: *mut GMimeCertificate) -> GMimePubKeyAlgo;
2622    pub fn g_mime_certificate_get_trust(cert: *mut GMimeCertificate) -> GMimeTrust;
2623    pub fn g_mime_certificate_get_user_id(cert: *mut GMimeCertificate) -> *const c_char;
2624    pub fn g_mime_certificate_set_created(cert: *mut GMimeCertificate, created: c_long);
2625    pub fn g_mime_certificate_set_digest_algo(cert: *mut GMimeCertificate, algo: GMimeDigestAlgo);
2626    pub fn g_mime_certificate_set_email(cert: *mut GMimeCertificate, email: *const c_char);
2627    pub fn g_mime_certificate_set_expires(cert: *mut GMimeCertificate, expires: c_long);
2628    pub fn g_mime_certificate_set_fingerprint(cert: *mut GMimeCertificate, fingerprint: *const c_char);
2629    pub fn g_mime_certificate_set_id_validity(cert: *mut GMimeCertificate, validity: GMimeValidity);
2630    pub fn g_mime_certificate_set_issuer_name(cert: *mut GMimeCertificate, issuer_name: *const c_char);
2631    pub fn g_mime_certificate_set_issuer_serial(cert: *mut GMimeCertificate, issuer_serial: *const c_char);
2632    pub fn g_mime_certificate_set_key_id(cert: *mut GMimeCertificate, key_id: *const c_char);
2633    pub fn g_mime_certificate_set_name(cert: *mut GMimeCertificate, name: *const c_char);
2634    pub fn g_mime_certificate_set_pubkey_algo(cert: *mut GMimeCertificate, algo: GMimePubKeyAlgo);
2635    pub fn g_mime_certificate_set_trust(cert: *mut GMimeCertificate, trust: GMimeTrust);
2636    pub fn g_mime_certificate_set_user_id(cert: *mut GMimeCertificate, user_id: *const c_char);
2637
2638    //=========================================================================
2639    // GMimeCertificateList
2640    //=========================================================================
2641    pub fn g_mime_certificate_list_get_type() -> GType;
2642    pub fn g_mime_certificate_list_new() -> *mut GMimeCertificateList;
2643    pub fn g_mime_certificate_list_add(list: *mut GMimeCertificateList, cert: *mut GMimeCertificate) -> c_int;
2644    pub fn g_mime_certificate_list_clear(list: *mut GMimeCertificateList);
2645    pub fn g_mime_certificate_list_contains(list: *mut GMimeCertificateList, cert: *mut GMimeCertificate) -> gboolean;
2646    pub fn g_mime_certificate_list_get_certificate(list: *mut GMimeCertificateList, index: c_int) -> *mut GMimeCertificate;
2647    pub fn g_mime_certificate_list_index_of(list: *mut GMimeCertificateList, cert: *mut GMimeCertificate) -> c_int;
2648    pub fn g_mime_certificate_list_insert(list: *mut GMimeCertificateList, index: c_int, cert: *mut GMimeCertificate);
2649    pub fn g_mime_certificate_list_length(list: *mut GMimeCertificateList) -> c_int;
2650    pub fn g_mime_certificate_list_remove(list: *mut GMimeCertificateList, cert: *mut GMimeCertificate) -> gboolean;
2651    pub fn g_mime_certificate_list_remove_at(list: *mut GMimeCertificateList, index: c_int) -> gboolean;
2652    pub fn g_mime_certificate_list_set_certificate(list: *mut GMimeCertificateList, index: c_int, cert: *mut GMimeCertificate);
2653
2654    //=========================================================================
2655    // GMimeContentDisposition
2656    //=========================================================================
2657    pub fn g_mime_content_disposition_get_type() -> GType;
2658    pub fn g_mime_content_disposition_new() -> *mut GMimeContentDisposition;
2659    pub fn g_mime_content_disposition_parse(options: *mut GMimeParserOptions, str: *const c_char) -> *mut GMimeContentDisposition;
2660    pub fn g_mime_content_disposition_encode(disposition: *mut GMimeContentDisposition, options: *mut GMimeFormatOptions) -> *mut c_char;
2661    pub fn g_mime_content_disposition_get_disposition(disposition: *mut GMimeContentDisposition) -> *const c_char;
2662    pub fn g_mime_content_disposition_get_parameter(disposition: *mut GMimeContentDisposition, name: *const c_char) -> *const c_char;
2663    pub fn g_mime_content_disposition_get_parameters(disposition: *mut GMimeContentDisposition) -> *mut GMimeParamList;
2664    pub fn g_mime_content_disposition_is_attachment(disposition: *mut GMimeContentDisposition) -> gboolean;
2665    pub fn g_mime_content_disposition_set_disposition(disposition: *mut GMimeContentDisposition, value: *const c_char);
2666    pub fn g_mime_content_disposition_set_parameter(disposition: *mut GMimeContentDisposition, name: *const c_char, value: *const c_char);
2667
2668    //=========================================================================
2669    // GMimeContentType
2670    //=========================================================================
2671    pub fn g_mime_content_type_get_type() -> GType;
2672    pub fn g_mime_content_type_new(type_: *const c_char, subtype: *const c_char) -> *mut GMimeContentType;
2673    pub fn g_mime_content_type_parse(options: *mut GMimeParserOptions, str: *const c_char) -> *mut GMimeContentType;
2674    pub fn g_mime_content_type_encode(content_type: *mut GMimeContentType, options: *mut GMimeFormatOptions) -> *mut c_char;
2675    pub fn g_mime_content_type_get_media_subtype(content_type: *mut GMimeContentType) -> *const c_char;
2676    pub fn g_mime_content_type_get_media_type(content_type: *mut GMimeContentType) -> *const c_char;
2677    pub fn g_mime_content_type_get_mime_type(content_type: *mut GMimeContentType) -> *mut c_char;
2678    pub fn g_mime_content_type_get_parameter(content_type: *mut GMimeContentType, name: *const c_char) -> *const c_char;
2679    pub fn g_mime_content_type_get_parameters(content_type: *mut GMimeContentType) -> *mut GMimeParamList;
2680    pub fn g_mime_content_type_is_type(content_type: *mut GMimeContentType, type_: *const c_char, subtype: *const c_char) -> gboolean;
2681    pub fn g_mime_content_type_set_media_subtype(content_type: *mut GMimeContentType, subtype: *const c_char);
2682    pub fn g_mime_content_type_set_media_type(content_type: *mut GMimeContentType, type_: *const c_char);
2683    pub fn g_mime_content_type_set_parameter(content_type: *mut GMimeContentType, name: *const c_char, value: *const c_char);
2684
2685    //=========================================================================
2686    // GMimeCryptoContext
2687    //=========================================================================
2688    pub fn g_mime_crypto_context_get_type() -> GType;
2689    pub fn g_mime_crypto_context_new(protocol: *const c_char) -> *mut GMimeCryptoContext;
2690    pub fn g_mime_crypto_context_register(protocol: *const c_char, callback: GMimeCryptoContextNewFunc);
2691    pub fn g_mime_crypto_context_decrypt(ctx: *mut GMimeCryptoContext, flags: GMimeDecryptFlags, session_key: *const c_char, istream: *mut GMimeStream, ostream: *mut GMimeStream, error: *mut *mut glib::GError) -> *mut GMimeDecryptResult;
2692    pub fn g_mime_crypto_context_digest_id(ctx: *mut GMimeCryptoContext, name: *const c_char) -> GMimeDigestAlgo;
2693    pub fn g_mime_crypto_context_digest_name(ctx: *mut GMimeCryptoContext, digest: GMimeDigestAlgo) -> *const c_char;
2694    pub fn g_mime_crypto_context_encrypt(ctx: *mut GMimeCryptoContext, sign: gboolean, userid: *const c_char, flags: GMimeEncryptFlags, recipients: *mut glib::GPtrArray, istream: *mut GMimeStream, ostream: *mut GMimeStream, error: *mut *mut glib::GError) -> c_int;
2695    pub fn g_mime_crypto_context_export_keys(ctx: *mut GMimeCryptoContext, keys: *mut *const c_char, ostream: *mut GMimeStream, error: *mut *mut glib::GError) -> c_int;
2696    pub fn g_mime_crypto_context_get_encryption_protocol(ctx: *mut GMimeCryptoContext) -> *const c_char;
2697    pub fn g_mime_crypto_context_get_key_exchange_protocol(ctx: *mut GMimeCryptoContext) -> *const c_char;
2698    pub fn g_mime_crypto_context_get_signature_protocol(ctx: *mut GMimeCryptoContext) -> *const c_char;
2699    pub fn g_mime_crypto_context_import_keys(ctx: *mut GMimeCryptoContext, istream: *mut GMimeStream, error: *mut *mut glib::GError) -> c_int;
2700    pub fn g_mime_crypto_context_set_request_password(ctx: *mut GMimeCryptoContext, request_passwd: GMimePasswordRequestFunc);
2701    pub fn g_mime_crypto_context_sign(ctx: *mut GMimeCryptoContext, detach: gboolean, userid: *const c_char, istream: *mut GMimeStream, ostream: *mut GMimeStream, error: *mut *mut glib::GError) -> c_int;
2702    pub fn g_mime_crypto_context_verify(ctx: *mut GMimeCryptoContext, flags: GMimeVerifyFlags, istream: *mut GMimeStream, sigstream: *mut GMimeStream, ostream: *mut GMimeStream, error: *mut *mut glib::GError) -> *mut GMimeSignatureList;
2703
2704    //=========================================================================
2705    // GMimeDataWrapper
2706    //=========================================================================
2707    pub fn g_mime_data_wrapper_get_type() -> GType;
2708    pub fn g_mime_data_wrapper_new() -> *mut GMimeDataWrapper;
2709    pub fn g_mime_data_wrapper_new_with_stream(stream: *mut GMimeStream, encoding: GMimeContentEncoding) -> *mut GMimeDataWrapper;
2710    pub fn g_mime_data_wrapper_get_encoding(wrapper: *mut GMimeDataWrapper) -> GMimeContentEncoding;
2711    pub fn g_mime_data_wrapper_get_stream(wrapper: *mut GMimeDataWrapper) -> *mut GMimeStream;
2712    pub fn g_mime_data_wrapper_set_encoding(wrapper: *mut GMimeDataWrapper, encoding: GMimeContentEncoding);
2713    pub fn g_mime_data_wrapper_set_stream(wrapper: *mut GMimeDataWrapper, stream: *mut GMimeStream);
2714    pub fn g_mime_data_wrapper_write_to_stream(wrapper: *mut GMimeDataWrapper, stream: *mut GMimeStream) -> ssize_t;
2715
2716    //=========================================================================
2717    // GMimeDecryptResult
2718    //=========================================================================
2719    pub fn g_mime_decrypt_result_get_type() -> GType;
2720    pub fn g_mime_decrypt_result_new() -> *mut GMimeDecryptResult;
2721    pub fn g_mime_decrypt_result_get_cipher(result: *mut GMimeDecryptResult) -> GMimeCipherAlgo;
2722    pub fn g_mime_decrypt_result_get_mdc(result: *mut GMimeDecryptResult) -> GMimeDigestAlgo;
2723    pub fn g_mime_decrypt_result_get_recipients(result: *mut GMimeDecryptResult) -> *mut GMimeCertificateList;
2724    pub fn g_mime_decrypt_result_get_session_key(result: *mut GMimeDecryptResult) -> *const c_char;
2725    pub fn g_mime_decrypt_result_get_signatures(result: *mut GMimeDecryptResult) -> *mut GMimeSignatureList;
2726    pub fn g_mime_decrypt_result_set_cipher(result: *mut GMimeDecryptResult, cipher: GMimeCipherAlgo);
2727    pub fn g_mime_decrypt_result_set_mdc(result: *mut GMimeDecryptResult, mdc: GMimeDigestAlgo);
2728    pub fn g_mime_decrypt_result_set_recipients(result: *mut GMimeDecryptResult, recipients: *mut GMimeCertificateList);
2729    pub fn g_mime_decrypt_result_set_session_key(result: *mut GMimeDecryptResult, session_key: *const c_char);
2730    pub fn g_mime_decrypt_result_set_signatures(result: *mut GMimeDecryptResult, signatures: *mut GMimeSignatureList);
2731
2732    //=========================================================================
2733    // GMimeFilter
2734    //=========================================================================
2735    pub fn g_mime_filter_get_type() -> GType;
2736    pub fn g_mime_filter_backup(filter: *mut GMimeFilter, data: *const u8, length: size_t);
2737    pub fn g_mime_filter_complete(filter: *mut GMimeFilter, inbuf: *mut u8, inlen: size_t, prespace: size_t, outbuf: *mut *mut u8, outlen: *mut size_t, outprespace: *mut size_t);
2738    pub fn g_mime_filter_copy(filter: *mut GMimeFilter) -> *mut GMimeFilter;
2739    pub fn g_mime_filter_filter(filter: *mut GMimeFilter, inbuf: *mut u8, inlen: size_t, prespace: size_t, outbuf: *mut *mut u8, outlen: *mut size_t, outprespace: *mut size_t);
2740    pub fn g_mime_filter_reset(filter: *mut GMimeFilter);
2741    pub fn g_mime_filter_set_size(filter: *mut GMimeFilter, size: size_t, keep: gboolean);
2742
2743    //=========================================================================
2744    // GMimeFilterBasic
2745    //=========================================================================
2746    pub fn g_mime_filter_basic_get_type() -> GType;
2747    pub fn g_mime_filter_basic_new(encoding: GMimeContentEncoding, encode: gboolean) -> *mut GMimeFilter;
2748
2749    //=========================================================================
2750    // GMimeFilterBest
2751    //=========================================================================
2752    pub fn g_mime_filter_best_get_type() -> GType;
2753    pub fn g_mime_filter_best_new(flags: GMimeFilterBestFlags) -> *mut GMimeFilter;
2754    pub fn g_mime_filter_best_charset(best: *mut GMimeFilterBest) -> *const c_char;
2755    pub fn g_mime_filter_best_encoding(best: *mut GMimeFilterBest, constraint: GMimeEncodingConstraint) -> GMimeContentEncoding;
2756
2757    //=========================================================================
2758    // GMimeFilterCharset
2759    //=========================================================================
2760    pub fn g_mime_filter_charset_get_type() -> GType;
2761    pub fn g_mime_filter_charset_new(from_charset: *const c_char, to_charset: *const c_char) -> *mut GMimeFilter;
2762
2763    //=========================================================================
2764    // GMimeFilterChecksum
2765    //=========================================================================
2766    pub fn g_mime_filter_checksum_get_type() -> GType;
2767    pub fn g_mime_filter_checksum_new(type_: glib::GChecksumType) -> *mut GMimeFilter;
2768    pub fn g_mime_filter_checksum_get_digest(checksum: *mut GMimeFilterChecksum, digest: *mut u8, len: size_t) -> size_t;
2769    pub fn g_mime_filter_checksum_get_string(checksum: *mut GMimeFilterChecksum) -> *mut c_char;
2770
2771    //=========================================================================
2772    // GMimeFilterDos2Unix
2773    //=========================================================================
2774    pub fn g_mime_filter_dos2unix_get_type() -> GType;
2775    pub fn g_mime_filter_dos2unix_new(ensure_newline: gboolean) -> *mut GMimeFilter;
2776
2777    //=========================================================================
2778    // GMimeFilterEnriched
2779    //=========================================================================
2780    pub fn g_mime_filter_enriched_get_type() -> GType;
2781    pub fn g_mime_filter_enriched_new(flags: u32) -> *mut GMimeFilter;
2782
2783    //=========================================================================
2784    // GMimeFilterFrom
2785    //=========================================================================
2786    pub fn g_mime_filter_from_get_type() -> GType;
2787    pub fn g_mime_filter_from_new(mode: GMimeFilterFromMode) -> *mut GMimeFilter;
2788
2789    //=========================================================================
2790    // GMimeFilterGZip
2791    //=========================================================================
2792    pub fn g_mime_filter_gzip_get_type() -> GType;
2793    pub fn g_mime_filter_gzip_new(mode: GMimeFilterGZipMode, level: c_int) -> *mut GMimeFilter;
2794    #[cfg(any(feature = "v3_2", feature = "dox"))]
2795    pub fn g_mime_filter_gzip_get_comment(gzip: *mut GMimeFilterGZip) -> *const c_char;
2796    #[cfg(any(feature = "v3_2", feature = "dox"))]
2797    pub fn g_mime_filter_gzip_get_filename(gzip: *mut GMimeFilterGZip) -> *const c_char;
2798    #[cfg(any(feature = "v3_2", feature = "dox"))]
2799    pub fn g_mime_filter_gzip_set_comment(gzip: *mut GMimeFilterGZip, comment: *const c_char);
2800    #[cfg(any(feature = "v3_2", feature = "dox"))]
2801    pub fn g_mime_filter_gzip_set_filename(gzip: *mut GMimeFilterGZip, filename: *const c_char);
2802
2803    //=========================================================================
2804    // GMimeFilterHTML
2805    //=========================================================================
2806    pub fn g_mime_filter_html_get_type() -> GType;
2807    pub fn g_mime_filter_html_new(flags: u32, colour: u32) -> *mut GMimeFilter;
2808
2809    //=========================================================================
2810    // GMimeFilterOpenPGP
2811    //=========================================================================
2812    #[cfg(any(feature = "v3_2", feature = "dox"))]
2813    pub fn g_mime_filter_openpgp_get_type() -> GType;
2814    #[cfg(any(feature = "v3_2", feature = "dox"))]
2815    pub fn g_mime_filter_openpgp_new() -> *mut GMimeFilter;
2816    #[cfg(any(feature = "v3_2", feature = "dox"))]
2817    pub fn g_mime_filter_openpgp_get_begin_offset(openpgp: *mut GMimeFilterOpenPGP) -> i64;
2818    #[cfg(any(feature = "v3_2", feature = "dox"))]
2819    pub fn g_mime_filter_openpgp_get_data_type(openpgp: *mut GMimeFilterOpenPGP) -> GMimeOpenPGPData;
2820    #[cfg(any(feature = "v3_2", feature = "dox"))]
2821    pub fn g_mime_filter_openpgp_get_end_offset(openpgp: *mut GMimeFilterOpenPGP) -> i64;
2822
2823    //=========================================================================
2824    // GMimeFilterSmtpData
2825    //=========================================================================
2826    pub fn g_mime_filter_smtp_data_get_type() -> GType;
2827    pub fn g_mime_filter_smtp_data_new() -> *mut GMimeFilter;
2828
2829    //=========================================================================
2830    // GMimeFilterStrip
2831    //=========================================================================
2832    pub fn g_mime_filter_strip_get_type() -> GType;
2833    pub fn g_mime_filter_strip_new() -> *mut GMimeFilter;
2834
2835    //=========================================================================
2836    // GMimeFilterUnix2Dos
2837    //=========================================================================
2838    pub fn g_mime_filter_unix2dos_get_type() -> GType;
2839    pub fn g_mime_filter_unix2dos_new(ensure_newline: gboolean) -> *mut GMimeFilter;
2840
2841    //=========================================================================
2842    // GMimeFilterWindows
2843    //=========================================================================
2844    pub fn g_mime_filter_windows_get_type() -> GType;
2845    pub fn g_mime_filter_windows_new(claimed_charset: *const c_char) -> *mut GMimeFilter;
2846    pub fn g_mime_filter_windows_is_windows_charset(filter: *mut GMimeFilterWindows) -> gboolean;
2847    pub fn g_mime_filter_windows_real_charset(filter: *mut GMimeFilterWindows) -> *const c_char;
2848
2849    //=========================================================================
2850    // GMimeFilterYenc
2851    //=========================================================================
2852    pub fn g_mime_filter_yenc_get_type() -> GType;
2853    pub fn g_mime_filter_yenc_new(encode: gboolean) -> *mut GMimeFilter;
2854    pub fn g_mime_filter_yenc_get_crc(yenc: *mut GMimeFilterYenc) -> u32;
2855    pub fn g_mime_filter_yenc_get_pcrc(yenc: *mut GMimeFilterYenc) -> u32;
2856    pub fn g_mime_filter_yenc_set_crc(yenc: *mut GMimeFilterYenc, crc: u32);
2857    pub fn g_mime_filter_yenc_set_state(yenc: *mut GMimeFilterYenc, state: c_int);
2858
2859    //=========================================================================
2860    // GMimeGpgContext
2861    //=========================================================================
2862    pub fn g_mime_gpg_context_get_type() -> GType;
2863    pub fn g_mime_gpg_context_new() -> *mut GMimeCryptoContext;
2864
2865    //=========================================================================
2866    // GMimeHeader
2867    //=========================================================================
2868    pub fn g_mime_header_get_type() -> GType;
2869    pub fn g_mime_header_format_addrlist(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2870    pub fn g_mime_header_format_content_disposition(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2871    pub fn g_mime_header_format_content_type(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2872    pub fn g_mime_header_format_default(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2873    pub fn g_mime_header_format_message_id(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2874    pub fn g_mime_header_format_received(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2875    pub fn g_mime_header_format_references(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char) -> *mut c_char;
2876    pub fn g_mime_header_get_name(header: *mut GMimeHeader) -> *const c_char;
2877    pub fn g_mime_header_get_offset(header: *mut GMimeHeader) -> i64;
2878    pub fn g_mime_header_get_raw_name(header: *mut GMimeHeader) -> *const c_char;
2879    pub fn g_mime_header_get_raw_value(header: *mut GMimeHeader) -> *const c_char;
2880    pub fn g_mime_header_get_value(header: *mut GMimeHeader) -> *const c_char;
2881    pub fn g_mime_header_set_raw_value(header: *mut GMimeHeader, raw_value: *const c_char);
2882    pub fn g_mime_header_set_value(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, value: *const c_char, charset: *const c_char);
2883    pub fn g_mime_header_write_to_stream(header: *mut GMimeHeader, options: *mut GMimeFormatOptions, stream: *mut GMimeStream) -> ssize_t;
2884
2885    //=========================================================================
2886    // GMimeHeaderList
2887    //=========================================================================
2888    pub fn g_mime_header_list_get_type() -> GType;
2889    pub fn g_mime_header_list_new(options: *mut GMimeParserOptions) -> *mut GMimeHeaderList;
2890    pub fn g_mime_header_list_append(headers: *mut GMimeHeaderList, name: *const c_char, value: *const c_char, charset: *const c_char);
2891    pub fn g_mime_header_list_clear(headers: *mut GMimeHeaderList);
2892    pub fn g_mime_header_list_contains(headers: *mut GMimeHeaderList, name: *const c_char) -> gboolean;
2893    pub fn g_mime_header_list_get_count(headers: *mut GMimeHeaderList) -> c_int;
2894    pub fn g_mime_header_list_get_header(headers: *mut GMimeHeaderList, name: *const c_char) -> *mut GMimeHeader;
2895    pub fn g_mime_header_list_get_header_at(headers: *mut GMimeHeaderList, index: c_int) -> *mut GMimeHeader;
2896    pub fn g_mime_header_list_prepend(headers: *mut GMimeHeaderList, name: *const c_char, value: *const c_char, charset: *const c_char);
2897    pub fn g_mime_header_list_remove(headers: *mut GMimeHeaderList, name: *const c_char) -> gboolean;
2898    pub fn g_mime_header_list_remove_at(headers: *mut GMimeHeaderList, index: c_int);
2899    pub fn g_mime_header_list_set(headers: *mut GMimeHeaderList, name: *const c_char, value: *const c_char, charset: *const c_char);
2900    pub fn g_mime_header_list_to_string(headers: *mut GMimeHeaderList, options: *mut GMimeFormatOptions) -> *mut c_char;
2901    pub fn g_mime_header_list_write_to_stream(headers: *mut GMimeHeaderList, options: *mut GMimeFormatOptions, stream: *mut GMimeStream) -> ssize_t;
2902
2903    //=========================================================================
2904    // GMimeMessage
2905    //=========================================================================
2906    pub fn g_mime_message_get_type() -> GType;
2907    pub fn g_mime_message_new(pretty_headers: gboolean) -> *mut GMimeMessage;
2908    pub fn g_mime_message_add_mailbox(message: *mut GMimeMessage, type_: GMimeAddressType, name: *const c_char, addr: *const c_char);
2909    pub fn g_mime_message_foreach(message: *mut GMimeMessage, callback: GMimeObjectForeachFunc, user_data: gpointer);
2910    pub fn g_mime_message_get_addresses(message: *mut GMimeMessage, type_: GMimeAddressType) -> *mut InternetAddressList;
2911    pub fn g_mime_message_get_all_recipients(message: *mut GMimeMessage) -> *mut InternetAddressList;
2912    pub fn g_mime_message_get_autocrypt_gossip_headers(message: *mut GMimeMessage, now: *mut glib::GDateTime, flags: GMimeDecryptFlags, session_key: *const c_char, error: *mut *mut glib::GError) -> *mut GMimeAutocryptHeaderList;
2913    pub fn g_mime_message_get_autocrypt_gossip_headers_from_inner_part(message: *mut GMimeMessage, now: *mut glib::GDateTime, inner_part: *mut GMimeObject) -> *mut GMimeAutocryptHeaderList;
2914    pub fn g_mime_message_get_autocrypt_header(message: *mut GMimeMessage, now: *mut glib::GDateTime) -> *mut GMimeAutocryptHeader;
2915    pub fn g_mime_message_get_bcc(message: *mut GMimeMessage) -> *mut InternetAddressList;
2916    pub fn g_mime_message_get_body(message: *mut GMimeMessage) -> *mut GMimeObject;
2917    pub fn g_mime_message_get_cc(message: *mut GMimeMessage) -> *mut InternetAddressList;
2918    pub fn g_mime_message_get_date(message: *mut GMimeMessage) -> *mut glib::GDateTime;
2919    pub fn g_mime_message_get_from(message: *mut GMimeMessage) -> *mut InternetAddressList;
2920    pub fn g_mime_message_get_message_id(message: *mut GMimeMessage) -> *const c_char;
2921    pub fn g_mime_message_get_mime_part(message: *mut GMimeMessage) -> *mut GMimeObject;
2922    pub fn g_mime_message_get_reply_to(message: *mut GMimeMessage) -> *mut InternetAddressList;
2923    pub fn g_mime_message_get_sender(message: *mut GMimeMessage) -> *mut InternetAddressList;
2924    pub fn g_mime_message_get_subject(message: *mut GMimeMessage) -> *const c_char;
2925    pub fn g_mime_message_get_to(message: *mut GMimeMessage) -> *mut InternetAddressList;
2926    pub fn g_mime_message_partial_split_message(message: *mut GMimeMessage, max_size: size_t, nparts: *mut size_t) -> *mut *mut GMimeMessage;
2927    pub fn g_mime_message_set_date(message: *mut GMimeMessage, date: *mut glib::GDateTime);
2928    pub fn g_mime_message_set_message_id(message: *mut GMimeMessage, message_id: *const c_char);
2929    pub fn g_mime_message_set_mime_part(message: *mut GMimeMessage, mime_part: *mut GMimeObject);
2930    pub fn g_mime_message_set_subject(message: *mut GMimeMessage, subject: *const c_char, charset: *const c_char);
2931
2932    //=========================================================================
2933    // GMimeMessagePart
2934    //=========================================================================
2935    pub fn g_mime_message_part_get_type() -> GType;
2936    pub fn g_mime_message_part_new(subtype: *const c_char) -> *mut GMimeMessagePart;
2937    pub fn g_mime_message_part_new_with_message(subtype: *const c_char, message: *mut GMimeMessage) -> *mut GMimeMessagePart;
2938    pub fn g_mime_message_part_get_message(part: *mut GMimeMessagePart) -> *mut GMimeMessage;
2939    pub fn g_mime_message_part_set_message(part: *mut GMimeMessagePart, message: *mut GMimeMessage);
2940
2941    //=========================================================================
2942    // GMimeMessagePartial
2943    //=========================================================================
2944    pub fn g_mime_message_partial_get_type() -> GType;
2945    pub fn g_mime_message_partial_new(id: *const c_char, number: c_int, total: c_int) -> *mut GMimeMessagePartial;
2946    pub fn g_mime_message_partial_reconstruct_message(partials: *mut *mut GMimeMessagePartial, num: size_t) -> *mut GMimeMessage;
2947    pub fn g_mime_message_partial_get_id(partial: *mut GMimeMessagePartial) -> *const c_char;
2948    pub fn g_mime_message_partial_get_number(partial: *mut GMimeMessagePartial) -> c_int;
2949    pub fn g_mime_message_partial_get_total(partial: *mut GMimeMessagePartial) -> c_int;
2950
2951    //=========================================================================
2952    // GMimeMultipart
2953    //=========================================================================
2954    pub fn g_mime_multipart_get_type() -> GType;
2955    pub fn g_mime_multipart_new() -> *mut GMimeMultipart;
2956    pub fn g_mime_multipart_new_with_subtype(subtype: *const c_char) -> *mut GMimeMultipart;
2957    pub fn g_mime_multipart_add(multipart: *mut GMimeMultipart, part: *mut GMimeObject);
2958    pub fn g_mime_multipart_clear(multipart: *mut GMimeMultipart);
2959    pub fn g_mime_multipart_contains(multipart: *mut GMimeMultipart, part: *mut GMimeObject) -> gboolean;
2960    pub fn g_mime_multipart_foreach(multipart: *mut GMimeMultipart, callback: GMimeObjectForeachFunc, user_data: gpointer);
2961    pub fn g_mime_multipart_get_boundary(multipart: *mut GMimeMultipart) -> *const c_char;
2962    pub fn g_mime_multipart_get_count(multipart: *mut GMimeMultipart) -> c_int;
2963    pub fn g_mime_multipart_get_epilogue(multipart: *mut GMimeMultipart) -> *const c_char;
2964    pub fn g_mime_multipart_get_part(multipart: *mut GMimeMultipart, index: c_int) -> *mut GMimeObject;
2965    pub fn g_mime_multipart_get_prologue(multipart: *mut GMimeMultipart) -> *const c_char;
2966    pub fn g_mime_multipart_get_subpart_from_content_id(multipart: *mut GMimeMultipart, content_id: *const c_char) -> *mut GMimeObject;
2967    pub fn g_mime_multipart_index_of(multipart: *mut GMimeMultipart, part: *mut GMimeObject) -> c_int;
2968    pub fn g_mime_multipart_insert(multipart: *mut GMimeMultipart, index: c_int, part: *mut GMimeObject);
2969    pub fn g_mime_multipart_remove(multipart: *mut GMimeMultipart, part: *mut GMimeObject) -> gboolean;
2970    pub fn g_mime_multipart_remove_at(multipart: *mut GMimeMultipart, index: c_int) -> *mut GMimeObject;
2971    pub fn g_mime_multipart_replace(multipart: *mut GMimeMultipart, index: c_int, replacement: *mut GMimeObject) -> *mut GMimeObject;
2972    pub fn g_mime_multipart_set_boundary(multipart: *mut GMimeMultipart, boundary: *const c_char);
2973    pub fn g_mime_multipart_set_epilogue(multipart: *mut GMimeMultipart, epilogue: *const c_char);
2974    pub fn g_mime_multipart_set_prologue(multipart: *mut GMimeMultipart, prologue: *const c_char);
2975
2976    //=========================================================================
2977    // GMimeMultipartEncrypted
2978    //=========================================================================
2979    pub fn g_mime_multipart_encrypted_get_type() -> GType;
2980    pub fn g_mime_multipart_encrypted_new() -> *mut GMimeMultipartEncrypted;
2981    pub fn g_mime_multipart_encrypted_encrypt(ctx: *mut GMimeCryptoContext, entity: *mut GMimeObject, sign: gboolean, userid: *const c_char, flags: GMimeEncryptFlags, recipients: *mut glib::GPtrArray, error: *mut *mut glib::GError) -> *mut GMimeMultipartEncrypted;
2982    pub fn g_mime_multipart_encrypted_decrypt(encrypted: *mut GMimeMultipartEncrypted, flags: GMimeDecryptFlags, session_key: *const c_char, result: *mut *mut GMimeDecryptResult, error: *mut *mut glib::GError) -> *mut GMimeObject;
2983
2984    //=========================================================================
2985    // GMimeMultipartSigned
2986    //=========================================================================
2987    pub fn g_mime_multipart_signed_get_type() -> GType;
2988    pub fn g_mime_multipart_signed_new() -> *mut GMimeMultipartSigned;
2989    pub fn g_mime_multipart_signed_sign(ctx: *mut GMimeCryptoContext, entity: *mut GMimeObject, userid: *const c_char, error: *mut *mut glib::GError) -> *mut GMimeMultipartSigned;
2990    pub fn g_mime_multipart_signed_verify(mps: *mut GMimeMultipartSigned, flags: GMimeVerifyFlags, error: *mut *mut glib::GError) -> *mut GMimeSignatureList;
2991
2992    //=========================================================================
2993    // GMimeObject
2994    //=========================================================================
2995    pub fn g_mime_object_get_type() -> GType;
2996    pub fn g_mime_object_new(options: *mut GMimeParserOptions, content_type: *mut GMimeContentType) -> *mut GMimeObject;
2997    pub fn g_mime_object_new_type(options: *mut GMimeParserOptions, type_: *const c_char, subtype: *const c_char) -> *mut GMimeObject;
2998    pub fn g_mime_object_register_type(type_: *const c_char, subtype: *const c_char, object_type: GType);
2999    pub fn g_mime_object_type_registry_init();
3000    pub fn g_mime_object_type_registry_shutdown();
3001    pub fn g_mime_object_append_header(object: *mut GMimeObject, header: *const c_char, value: *const c_char, charset: *const c_char);
3002    pub fn g_mime_object_encode(object: *mut GMimeObject, constraint: GMimeEncodingConstraint);
3003    pub fn g_mime_object_get_autocrypt_headers(mime_part: *mut GMimeObject, effective_date: *mut glib::GDateTime, matchheader: *const c_char, addresses: *mut InternetAddressList, keep_incomplete: gboolean) -> *mut GMimeAutocryptHeaderList;
3004    pub fn g_mime_object_get_content_disposition(object: *mut GMimeObject) -> *mut GMimeContentDisposition;
3005    pub fn g_mime_object_get_content_disposition_parameter(object: *mut GMimeObject, name: *const c_char) -> *const c_char;
3006    pub fn g_mime_object_get_content_id(object: *mut GMimeObject) -> *const c_char;
3007    pub fn g_mime_object_get_content_type(object: *mut GMimeObject) -> *mut GMimeContentType;
3008    pub fn g_mime_object_get_content_type_parameter(object: *mut GMimeObject, name: *const c_char) -> *const c_char;
3009    pub fn g_mime_object_get_disposition(object: *mut GMimeObject) -> *const c_char;
3010    pub fn g_mime_object_get_header(object: *mut GMimeObject, header: *const c_char) -> *const c_char;
3011    pub fn g_mime_object_get_header_list(object: *mut GMimeObject) -> *mut GMimeHeaderList;
3012    pub fn g_mime_object_get_headers(object: *mut GMimeObject, options: *mut GMimeFormatOptions) -> *mut c_char;
3013    pub fn g_mime_object_prepend_header(object: *mut GMimeObject, header: *const c_char, value: *const c_char, charset: *const c_char);
3014    pub fn g_mime_object_remove_header(object: *mut GMimeObject, header: *const c_char) -> gboolean;
3015    pub fn g_mime_object_set_content_disposition(object: *mut GMimeObject, disposition: *mut GMimeContentDisposition);
3016    pub fn g_mime_object_set_content_disposition_parameter(object: *mut GMimeObject, name: *const c_char, value: *const c_char);
3017    pub fn g_mime_object_set_content_id(object: *mut GMimeObject, content_id: *const c_char);
3018    pub fn g_mime_object_set_content_type(object: *mut GMimeObject, content_type: *mut GMimeContentType);
3019    pub fn g_mime_object_set_content_type_parameter(object: *mut GMimeObject, name: *const c_char, value: *const c_char);
3020    pub fn g_mime_object_set_disposition(object: *mut GMimeObject, disposition: *const c_char);
3021    pub fn g_mime_object_set_header(object: *mut GMimeObject, header: *const c_char, value: *const c_char, charset: *const c_char);
3022    pub fn g_mime_object_to_string(object: *mut GMimeObject, options: *mut GMimeFormatOptions) -> *mut c_char;
3023    pub fn g_mime_object_write_to_stream(object: *mut GMimeObject, options: *mut GMimeFormatOptions, stream: *mut GMimeStream) -> ssize_t;
3024
3025    //=========================================================================
3026    // GMimeParam
3027    //=========================================================================
3028    pub fn g_mime_param_get_type() -> GType;
3029    pub fn g_mime_param_get_charset(param: *mut GMimeParam) -> *const c_char;
3030    pub fn g_mime_param_get_encoding_method(param: *mut GMimeParam) -> GMimeParamEncodingMethod;
3031    pub fn g_mime_param_get_lang(param: *mut GMimeParam) -> *const c_char;
3032    pub fn g_mime_param_get_name(param: *mut GMimeParam) -> *const c_char;
3033    pub fn g_mime_param_get_value(param: *mut GMimeParam) -> *const c_char;
3034    pub fn g_mime_param_set_charset(param: *mut GMimeParam, charset: *const c_char);
3035    pub fn g_mime_param_set_encoding_method(param: *mut GMimeParam, method: GMimeParamEncodingMethod);
3036    pub fn g_mime_param_set_lang(param: *mut GMimeParam, lang: *const c_char);
3037    pub fn g_mime_param_set_value(param: *mut GMimeParam, value: *const c_char);
3038
3039    //=========================================================================
3040    // GMimeParamList
3041    //=========================================================================
3042    pub fn g_mime_param_list_get_type() -> GType;
3043    pub fn g_mime_param_list_new() -> *mut GMimeParamList;
3044    pub fn g_mime_param_list_parse(options: *mut GMimeParserOptions, str: *const c_char) -> *mut GMimeParamList;
3045    pub fn g_mime_param_list_clear(list: *mut GMimeParamList);
3046    pub fn g_mime_param_list_encode(list: *mut GMimeParamList, options: *mut GMimeFormatOptions, fold: gboolean, str: *mut glib::GString);
3047    pub fn g_mime_param_list_get_parameter(list: *mut GMimeParamList, name: *const c_char) -> *mut GMimeParam;
3048    pub fn g_mime_param_list_get_parameter_at(list: *mut GMimeParamList, index: c_int) -> *mut GMimeParam;
3049    pub fn g_mime_param_list_length(list: *mut GMimeParamList) -> c_int;
3050    pub fn g_mime_param_list_remove(list: *mut GMimeParamList, name: *const c_char) -> gboolean;
3051    pub fn g_mime_param_list_remove_at(list: *mut GMimeParamList, index: c_int) -> gboolean;
3052    pub fn g_mime_param_list_set_parameter(list: *mut GMimeParamList, name: *const c_char, value: *const c_char);
3053
3054    //=========================================================================
3055    // GMimeParser
3056    //=========================================================================
3057    pub fn g_mime_parser_get_type() -> GType;
3058    pub fn g_mime_parser_new() -> *mut GMimeParser;
3059    pub fn g_mime_parser_new_with_stream(stream: *mut GMimeStream) -> *mut GMimeParser;
3060    pub fn g_mime_parser_construct_message(parser: *mut GMimeParser, options: *mut GMimeParserOptions) -> *mut GMimeMessage;
3061    pub fn g_mime_parser_construct_part(parser: *mut GMimeParser, options: *mut GMimeParserOptions) -> *mut GMimeObject;
3062    pub fn g_mime_parser_eos(parser: *mut GMimeParser) -> gboolean;
3063    pub fn g_mime_parser_get_format(parser: *mut GMimeParser) -> GMimeFormat;
3064    pub fn g_mime_parser_get_headers_begin(parser: *mut GMimeParser) -> i64;
3065    pub fn g_mime_parser_get_headers_end(parser: *mut GMimeParser) -> i64;
3066    pub fn g_mime_parser_get_mbox_marker(parser: *mut GMimeParser) -> *mut c_char;
3067    pub fn g_mime_parser_get_mbox_marker_offset(parser: *mut GMimeParser) -> i64;
3068    pub fn g_mime_parser_get_persist_stream(parser: *mut GMimeParser) -> gboolean;
3069    pub fn g_mime_parser_get_respect_content_length(parser: *mut GMimeParser) -> gboolean;
3070    pub fn g_mime_parser_init_with_stream(parser: *mut GMimeParser, stream: *mut GMimeStream);
3071    pub fn g_mime_parser_set_format(parser: *mut GMimeParser, format: GMimeFormat);
3072    pub fn g_mime_parser_set_header_regex(parser: *mut GMimeParser, regex: *const c_char, header_cb: GMimeParserHeaderRegexFunc, user_data: gpointer);
3073    pub fn g_mime_parser_set_persist_stream(parser: *mut GMimeParser, persist: gboolean);
3074    pub fn g_mime_parser_set_respect_content_length(parser: *mut GMimeParser, respect_content_length: gboolean);
3075    pub fn g_mime_parser_tell(parser: *mut GMimeParser) -> i64;
3076
3077    //=========================================================================
3078    // GMimePart
3079    //=========================================================================
3080    pub fn g_mime_part_get_type() -> GType;
3081    pub fn g_mime_part_new() -> *mut GMimePart;
3082    pub fn g_mime_part_new_with_type(type_: *const c_char, subtype: *const c_char) -> *mut GMimePart;
3083    pub fn g_mime_part_get_best_content_encoding(mime_part: *mut GMimePart, constraint: GMimeEncodingConstraint) -> GMimeContentEncoding;
3084    pub fn g_mime_part_get_content(mime_part: *mut GMimePart) -> *mut GMimeDataWrapper;
3085    pub fn g_mime_part_get_content_description(mime_part: *mut GMimePart) -> *const c_char;
3086    pub fn g_mime_part_get_content_encoding(mime_part: *mut GMimePart) -> GMimeContentEncoding;
3087    pub fn g_mime_part_get_content_id(mime_part: *mut GMimePart) -> *const c_char;
3088    pub fn g_mime_part_get_content_location(mime_part: *mut GMimePart) -> *const c_char;
3089    pub fn g_mime_part_get_content_md5(mime_part: *mut GMimePart) -> *const c_char;
3090    pub fn g_mime_part_get_filename(mime_part: *mut GMimePart) -> *const c_char;
3091    pub fn g_mime_part_get_openpgp_data(mime_part: *mut GMimePart) -> GMimeOpenPGPData;
3092    pub fn g_mime_part_is_attachment(mime_part: *mut GMimePart) -> gboolean;
3093    pub fn g_mime_part_openpgp_decrypt(mime_part: *mut GMimePart, flags: GMimeDecryptFlags, session_key: *const c_char, error: *mut *mut glib::GError) -> *mut GMimeDecryptResult;
3094    pub fn g_mime_part_openpgp_encrypt(mime_part: *mut GMimePart, sign: gboolean, userid: *const c_char, flags: GMimeEncryptFlags, recipients: *mut glib::GPtrArray, error: *mut *mut glib::GError) -> gboolean;
3095    pub fn g_mime_part_openpgp_sign(mime_part: *mut GMimePart, userid: *const c_char, error: *mut *mut glib::GError) -> gboolean;
3096    pub fn g_mime_part_openpgp_verify(mime_part: *mut GMimePart, flags: GMimeVerifyFlags, error: *mut *mut glib::GError) -> *mut GMimeSignatureList;
3097    pub fn g_mime_part_set_content(mime_part: *mut GMimePart, content: *mut GMimeDataWrapper);
3098    pub fn g_mime_part_set_content_description(mime_part: *mut GMimePart, description: *const c_char);
3099    pub fn g_mime_part_set_content_encoding(mime_part: *mut GMimePart, encoding: GMimeContentEncoding);
3100    pub fn g_mime_part_set_content_id(mime_part: *mut GMimePart, content_id: *const c_char);
3101    pub fn g_mime_part_set_content_location(mime_part: *mut GMimePart, content_location: *const c_char);
3102    pub fn g_mime_part_set_content_md5(mime_part: *mut GMimePart, content_md5: *const c_char);
3103    pub fn g_mime_part_set_filename(mime_part: *mut GMimePart, filename: *const c_char);
3104    pub fn g_mime_part_set_openpgp_data(mime_part: *mut GMimePart, data: GMimeOpenPGPData);
3105    pub fn g_mime_part_verify_content_md5(mime_part: *mut GMimePart) -> gboolean;
3106
3107    //=========================================================================
3108    // GMimePkcs7Context
3109    //=========================================================================
3110    pub fn g_mime_pkcs7_context_get_type() -> GType;
3111    pub fn g_mime_pkcs7_context_new() -> *mut GMimeCryptoContext;
3112
3113    //=========================================================================
3114    // GMimeSignature
3115    //=========================================================================
3116    pub fn g_mime_signature_get_type() -> GType;
3117    pub fn g_mime_signature_new() -> *mut GMimeSignature;
3118    pub fn g_mime_signature_get_certificate(sig: *mut GMimeSignature) -> *mut GMimeCertificate;
3119    pub fn g_mime_signature_get_created(sig: *mut GMimeSignature) -> c_long;
3120    pub fn g_mime_signature_get_created64(sig: *mut GMimeSignature) -> i64;
3121    pub fn g_mime_signature_get_expires(sig: *mut GMimeSignature) -> c_long;
3122    pub fn g_mime_signature_get_expires64(sig: *mut GMimeSignature) -> i64;
3123    pub fn g_mime_signature_get_status(sig: *mut GMimeSignature) -> GMimeSignatureStatus;
3124    pub fn g_mime_signature_set_certificate(sig: *mut GMimeSignature, cert: *mut GMimeCertificate);
3125    pub fn g_mime_signature_set_created(sig: *mut GMimeSignature, created: c_long);
3126    pub fn g_mime_signature_set_expires(sig: *mut GMimeSignature, expires: c_long);
3127    pub fn g_mime_signature_set_status(sig: *mut GMimeSignature, status: GMimeSignatureStatus);
3128
3129    //=========================================================================
3130    // GMimeSignatureList
3131    //=========================================================================
3132    pub fn g_mime_signature_list_get_type() -> GType;
3133    pub fn g_mime_signature_list_new() -> *mut GMimeSignatureList;
3134    pub fn g_mime_signature_list_add(list: *mut GMimeSignatureList, sig: *mut GMimeSignature) -> c_int;
3135    pub fn g_mime_signature_list_clear(list: *mut GMimeSignatureList);
3136    pub fn g_mime_signature_list_contains(list: *mut GMimeSignatureList, sig: *mut GMimeSignature) -> gboolean;
3137    pub fn g_mime_signature_list_get_signature(list: *mut GMimeSignatureList, index: c_int) -> *mut GMimeSignature;
3138    pub fn g_mime_signature_list_index_of(list: *mut GMimeSignatureList, sig: *mut GMimeSignature) -> c_int;
3139    pub fn g_mime_signature_list_insert(list: *mut GMimeSignatureList, index: c_int, sig: *mut GMimeSignature);
3140    pub fn g_mime_signature_list_length(list: *mut GMimeSignatureList) -> c_int;
3141    pub fn g_mime_signature_list_remove(list: *mut GMimeSignatureList, sig: *mut GMimeSignature) -> gboolean;
3142    pub fn g_mime_signature_list_remove_at(list: *mut GMimeSignatureList, index: c_int) -> gboolean;
3143    pub fn g_mime_signature_list_set_signature(list: *mut GMimeSignatureList, index: c_int, sig: *mut GMimeSignature);
3144
3145    //=========================================================================
3146    // GMimeStream
3147    //=========================================================================
3148    pub fn g_mime_stream_get_type() -> GType;
3149    pub fn g_mime_stream_buffer_gets(stream: *mut GMimeStream, buf: *mut c_char, max: size_t) -> ssize_t;
3150    pub fn g_mime_stream_buffer_readln(stream: *mut GMimeStream, buffer: *mut glib::GByteArray);
3151    pub fn g_mime_stream_close(stream: *mut GMimeStream) -> c_int;
3152    pub fn g_mime_stream_construct(stream: *mut GMimeStream, start: i64, end: i64);
3153    pub fn g_mime_stream_eos(stream: *mut GMimeStream) -> gboolean;
3154    pub fn g_mime_stream_flush(stream: *mut GMimeStream) -> c_int;
3155    pub fn g_mime_stream_length(stream: *mut GMimeStream) -> i64;
3156    pub fn g_mime_stream_printf(stream: *mut GMimeStream, fmt: *const c_char, ...) -> ssize_t;
3157    pub fn g_mime_stream_read(stream: *mut GMimeStream, buf: *mut u8, len: size_t) -> ssize_t;
3158    pub fn g_mime_stream_reset(stream: *mut GMimeStream) -> c_int;
3159    pub fn g_mime_stream_seek(stream: *mut GMimeStream, offset: i64, whence: GMimeSeekWhence) -> i64;
3160    pub fn g_mime_stream_set_bounds(stream: *mut GMimeStream, start: i64, end: i64);
3161    pub fn g_mime_stream_substream(stream: *mut GMimeStream, start: i64, end: i64) -> *mut GMimeStream;
3162    pub fn g_mime_stream_tell(stream: *mut GMimeStream) -> i64;
3163    pub fn g_mime_stream_write(stream: *mut GMimeStream, buf: *const c_char, len: size_t) -> ssize_t;
3164    pub fn g_mime_stream_write_string(stream: *mut GMimeStream, str: *const c_char) -> ssize_t;
3165    pub fn g_mime_stream_write_to_stream(src: *mut GMimeStream, dest: *mut GMimeStream) -> i64;
3166    pub fn g_mime_stream_writev(stream: *mut GMimeStream, vector: *mut GMimeStreamIOVector, count: size_t) -> i64;
3167
3168    //=========================================================================
3169    // GMimeStreamBuffer
3170    //=========================================================================
3171    pub fn g_mime_stream_buffer_get_type() -> GType;
3172    pub fn g_mime_stream_buffer_new(source: *mut GMimeStream, mode: GMimeStreamBufferMode) -> *mut GMimeStream;
3173
3174    //=========================================================================
3175    // GMimeStreamCat
3176    //=========================================================================
3177    pub fn g_mime_stream_cat_get_type() -> GType;
3178    pub fn g_mime_stream_cat_new() -> *mut GMimeStream;
3179    pub fn g_mime_stream_cat_add_source(cat: *mut GMimeStreamCat, source: *mut GMimeStream) -> c_int;
3180
3181    //=========================================================================
3182    // GMimeStreamFile
3183    //=========================================================================
3184    pub fn g_mime_stream_file_get_type() -> GType;
3185    pub fn g_mime_stream_file_new(fp: *mut FILE) -> *mut GMimeStream;
3186    pub fn g_mime_stream_file_new_with_bounds(fp: *mut FILE, start: i64, end: i64) -> *mut GMimeStream;
3187    pub fn g_mime_stream_file_open(path: *const c_char, mode: *const c_char, error: *mut *mut glib::GError) -> *mut GMimeStream;
3188    pub fn g_mime_stream_file_get_owner(stream: *mut GMimeStreamFile) -> gboolean;
3189    pub fn g_mime_stream_file_set_owner(stream: *mut GMimeStreamFile, owner: gboolean);
3190
3191    //=========================================================================
3192    // GMimeStreamFilter
3193    //=========================================================================
3194    pub fn g_mime_stream_filter_get_type() -> GType;
3195    pub fn g_mime_stream_filter_new(stream: *mut GMimeStream) -> *mut GMimeStream;
3196    pub fn g_mime_stream_filter_add(stream: *mut GMimeStreamFilter, filter: *mut GMimeFilter) -> c_int;
3197    pub fn g_mime_stream_filter_get_owner(stream: *mut GMimeStreamFilter) -> gboolean;
3198    pub fn g_mime_stream_filter_remove(stream: *mut GMimeStreamFilter, id: c_int);
3199    pub fn g_mime_stream_filter_set_owner(stream: *mut GMimeStreamFilter, owner: gboolean);
3200
3201    //=========================================================================
3202    // GMimeStreamFs
3203    //=========================================================================
3204    pub fn g_mime_stream_fs_get_type() -> GType;
3205    pub fn g_mime_stream_fs_new(fd: c_int) -> *mut GMimeStream;
3206    pub fn g_mime_stream_fs_new_with_bounds(fd: c_int, start: i64, end: i64) -> *mut GMimeStream;
3207    pub fn g_mime_stream_fs_open(path: *const c_char, flags: c_int, mode: c_int, error: *mut *mut glib::GError) -> *mut GMimeStream;
3208    pub fn g_mime_stream_fs_get_owner(stream: *mut GMimeStreamFs) -> gboolean;
3209    pub fn g_mime_stream_fs_set_owner(stream: *mut GMimeStreamFs, owner: gboolean);
3210
3211    //=========================================================================
3212    // GMimeStreamGIO
3213    //=========================================================================
3214    pub fn g_mime_stream_gio_get_type() -> GType;
3215    pub fn g_mime_stream_gio_new(file: *mut gio::GFile) -> *mut GMimeStream;
3216    pub fn g_mime_stream_gio_new_with_bounds(file: *mut gio::GFile, start: i64, end: i64) -> *mut GMimeStream;
3217    pub fn g_mime_stream_gio_get_owner(stream: *mut GMimeStreamGIO) -> gboolean;
3218    pub fn g_mime_stream_gio_set_owner(stream: *mut GMimeStreamGIO, owner: gboolean);
3219
3220    //=========================================================================
3221    // GMimeStreamMem
3222    //=========================================================================
3223    pub fn g_mime_stream_mem_get_type() -> GType;
3224    pub fn g_mime_stream_mem_new() -> *mut GMimeStream;
3225    pub fn g_mime_stream_mem_new_with_buffer(buffer: *const u8, len: size_t) -> *mut GMimeStream;
3226    pub fn g_mime_stream_mem_new_with_byte_array(array: *mut glib::GByteArray) -> *mut GMimeStream;
3227    pub fn g_mime_stream_mem_get_byte_array(mem: *mut GMimeStreamMem) -> *mut glib::GByteArray;
3228    pub fn g_mime_stream_mem_get_owner(mem: *mut GMimeStreamMem) -> gboolean;
3229    pub fn g_mime_stream_mem_set_byte_array(mem: *mut GMimeStreamMem, array: *mut glib::GByteArray);
3230    pub fn g_mime_stream_mem_set_owner(mem: *mut GMimeStreamMem, owner: gboolean);
3231
3232    //=========================================================================
3233    // GMimeStreamMmap
3234    //=========================================================================
3235    pub fn g_mime_stream_mmap_get_type() -> GType;
3236    pub fn g_mime_stream_mmap_new(fd: c_int, prot: c_int, flags: c_int) -> *mut GMimeStream;
3237    pub fn g_mime_stream_mmap_new_with_bounds(fd: c_int, prot: c_int, flags: c_int, start: i64, end: i64) -> *mut GMimeStream;
3238    #[cfg(any(feature = "v3_2", feature = "dox"))]
3239    pub fn g_mime_stream_mmap_get_owner(stream: *mut GMimeStreamMmap) -> gboolean;
3240    #[cfg(any(feature = "v3_2", feature = "dox"))]
3241    pub fn g_mime_stream_mmap_set_owner(stream: *mut GMimeStreamMmap, owner: gboolean);
3242
3243    //=========================================================================
3244    // GMimeStreamNull
3245    //=========================================================================
3246    pub fn g_mime_stream_null_get_type() -> GType;
3247    pub fn g_mime_stream_null_new() -> *mut GMimeStream;
3248    pub fn g_mime_stream_null_get_count_newlines(stream: *mut GMimeStreamNull) -> gboolean;
3249    pub fn g_mime_stream_null_set_count_newlines(stream: *mut GMimeStreamNull, count: gboolean);
3250
3251    //=========================================================================
3252    // GMimeStreamPipe
3253    //=========================================================================
3254    pub fn g_mime_stream_pipe_get_type() -> GType;
3255    pub fn g_mime_stream_pipe_new(fd: c_int) -> *mut GMimeStream;
3256    pub fn g_mime_stream_pipe_get_owner(stream: *mut GMimeStreamPipe) -> gboolean;
3257    pub fn g_mime_stream_pipe_set_owner(stream: *mut GMimeStreamPipe, owner: gboolean);
3258
3259    //=========================================================================
3260    // GMimeTextPart
3261    //=========================================================================
3262    pub fn g_mime_text_part_get_type() -> GType;
3263    pub fn g_mime_text_part_new() -> *mut GMimeTextPart;
3264    pub fn g_mime_text_part_new_with_subtype(subtype: *const c_char) -> *mut GMimeTextPart;
3265    pub fn g_mime_text_part_get_charset(mime_part: *mut GMimeTextPart) -> *const c_char;
3266    pub fn g_mime_text_part_get_text(mime_part: *mut GMimeTextPart) -> *mut c_char;
3267    pub fn g_mime_text_part_set_charset(mime_part: *mut GMimeTextPart, charset: *const c_char);
3268    pub fn g_mime_text_part_set_text(mime_part: *mut GMimeTextPart, text: *const c_char);
3269
3270    //=========================================================================
3271    // InternetAddress
3272    //=========================================================================
3273    pub fn internet_address_get_type() -> GType;
3274    pub fn internet_address_get_charset(ia: *mut InternetAddress) -> *const c_char;
3275    pub fn internet_address_get_name(ia: *mut InternetAddress) -> *const c_char;
3276    pub fn internet_address_set_charset(ia: *mut InternetAddress, charset: *const c_char);
3277    pub fn internet_address_set_name(ia: *mut InternetAddress, name: *const c_char);
3278    pub fn internet_address_to_string(ia: *mut InternetAddress, options: *mut GMimeFormatOptions, encode: gboolean) -> *mut c_char;
3279
3280    //=========================================================================
3281    // InternetAddressGroup
3282    //=========================================================================
3283    pub fn internet_address_group_get_type() -> GType;
3284    pub fn internet_address_group_new(name: *const c_char) -> *mut InternetAddress;
3285    pub fn internet_address_group_add_member(group: *mut InternetAddressGroup, member: *mut InternetAddress) -> c_int;
3286    pub fn internet_address_group_get_members(group: *mut InternetAddressGroup) -> *mut InternetAddressList;
3287    pub fn internet_address_group_set_members(group: *mut InternetAddressGroup, members: *mut InternetAddressList);
3288
3289    //=========================================================================
3290    // InternetAddressList
3291    //=========================================================================
3292    pub fn internet_address_list_get_type() -> GType;
3293    pub fn internet_address_list_new() -> *mut InternetAddressList;
3294    pub fn internet_address_list_parse(options: *mut GMimeParserOptions, str: *const c_char) -> *mut InternetAddressList;
3295    pub fn internet_address_list_add(list: *mut InternetAddressList, ia: *mut InternetAddress) -> c_int;
3296    pub fn internet_address_list_append(list: *mut InternetAddressList, append: *mut InternetAddressList);
3297    pub fn internet_address_list_clear(list: *mut InternetAddressList);
3298    pub fn internet_address_list_contains(list: *mut InternetAddressList, ia: *mut InternetAddress) -> gboolean;
3299    pub fn internet_address_list_encode(list: *mut InternetAddressList, options: *mut GMimeFormatOptions, str: *mut glib::GString);
3300    pub fn internet_address_list_get_address(list: *mut InternetAddressList, index: c_int) -> *mut InternetAddress;
3301    pub fn internet_address_list_index_of(list: *mut InternetAddressList, ia: *mut InternetAddress) -> c_int;
3302    pub fn internet_address_list_insert(list: *mut InternetAddressList, index: c_int, ia: *mut InternetAddress);
3303    pub fn internet_address_list_length(list: *mut InternetAddressList) -> c_int;
3304    pub fn internet_address_list_prepend(list: *mut InternetAddressList, prepend: *mut InternetAddressList);
3305    pub fn internet_address_list_remove(list: *mut InternetAddressList, ia: *mut InternetAddress) -> gboolean;
3306    pub fn internet_address_list_remove_at(list: *mut InternetAddressList, index: c_int) -> gboolean;
3307    pub fn internet_address_list_set_address(list: *mut InternetAddressList, index: c_int, ia: *mut InternetAddress);
3308    pub fn internet_address_list_to_string(list: *mut InternetAddressList, options: *mut GMimeFormatOptions, encode: gboolean) -> *mut c_char;
3309
3310    //=========================================================================
3311    // InternetAddressMailbox
3312    //=========================================================================
3313    pub fn internet_address_mailbox_get_type() -> GType;
3314    pub fn internet_address_mailbox_new(name: *const c_char, addr: *const c_char) -> *mut InternetAddress;
3315    pub fn internet_address_mailbox_get_addr(mailbox: *mut InternetAddressMailbox) -> *const c_char;
3316    pub fn internet_address_mailbox_get_idn_addr(mailbox: *mut InternetAddressMailbox) -> *const c_char;
3317    pub fn internet_address_mailbox_set_addr(mailbox: *mut InternetAddressMailbox, addr: *const c_char);
3318
3319    //=========================================================================
3320    // Other functions
3321    //=========================================================================
3322    pub fn g_mime_check_version(major: c_uint, minor: c_uint, micro: c_uint) -> gboolean;
3323    pub fn g_mime_content_encoding_from_string(str: *const c_char) -> GMimeContentEncoding;
3324    pub fn g_mime_content_encoding_to_string(encoding: GMimeContentEncoding) -> *const c_char;
3325    pub fn g_mime_iconv_close(cd: iconv_t) -> c_int;
3326    pub fn g_mime_iconv_locale_to_utf8(str: *const c_char) -> *mut c_char;
3327    pub fn g_mime_iconv_locale_to_utf8_length(str: *const c_char, n: size_t) -> *mut c_char;
3328    pub fn g_mime_iconv_open(to: *const c_char, from: *const c_char) -> iconv_t;
3329    pub fn g_mime_iconv_strdup(cd: iconv_t, str: *const c_char) -> *mut c_char;
3330    pub fn g_mime_iconv_strndup(cd: iconv_t, str: *const c_char, n: size_t) -> *mut c_char;
3331    pub fn g_mime_iconv_utf8_to_locale(str: *const c_char) -> *mut c_char;
3332    pub fn g_mime_iconv_utf8_to_locale_length(str: *const c_char, n: size_t) -> *mut c_char;
3333    pub fn g_mime_init();
3334    pub fn g_mime_locale_charset() -> *const c_char;
3335    pub fn g_mime_locale_language() -> *const c_char;
3336    pub fn g_mime_shutdown();
3337    pub fn g_mime_utils_best_encoding(text: *const u8, len: size_t) -> GMimeContentEncoding;
3338    pub fn g_mime_utils_decode_8bit(options: *mut GMimeParserOptions, text: *const u8, len: size_t) -> *mut c_char;
3339    pub fn g_mime_utils_decode_message_id(message_id: *const c_char) -> *mut c_char;
3340    pub fn g_mime_utils_generate_message_id(fqdn: *const c_char) -> *mut c_char;
3341    pub fn g_mime_utils_header_decode_date(str: *const c_char) -> *mut glib::GDateTime;
3342    pub fn g_mime_utils_header_decode_phrase(options: *mut GMimeParserOptions, phrase: *const c_char) -> *mut c_char;
3343    pub fn g_mime_utils_header_decode_text(options: *mut GMimeParserOptions, text: *const c_char) -> *mut c_char;
3344    pub fn g_mime_utils_header_encode_phrase(options: *mut GMimeFormatOptions, phrase: *const c_char, charset: *const c_char) -> *mut c_char;
3345    pub fn g_mime_utils_header_encode_text(options: *mut GMimeFormatOptions, text: *const c_char, charset: *const c_char) -> *mut c_char;
3346    pub fn g_mime_utils_header_format_date(date: *mut glib::GDateTime) -> *mut c_char;
3347    pub fn g_mime_utils_header_printf(options: *mut GMimeParserOptions, format: *mut GMimeFormatOptions, text: *const c_char, ...) -> *mut c_char;
3348    pub fn g_mime_utils_header_unfold(value: *const c_char) -> *mut c_char;
3349    pub fn g_mime_utils_quote_string(str: *const c_char) -> *mut c_char;
3350    pub fn g_mime_utils_structured_header_fold(options: *mut GMimeParserOptions, format: *mut GMimeFormatOptions, header: *const c_char) -> *mut c_char;
3351    pub fn g_mime_utils_text_is_8bit(text: *const u8, len: size_t) -> gboolean;
3352    pub fn g_mime_utils_unquote_string(str: *mut c_char);
3353    pub fn g_mime_utils_unstructured_header_fold(options: *mut GMimeParserOptions, format: *mut GMimeFormatOptions, header: *const c_char) -> *mut c_char;
3354    pub fn g_mime_ydecode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, pcrc: *mut u32, crc: *mut u32) -> size_t;
3355    pub fn g_mime_yencode_close(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, pcrc: *mut u32, crc: *mut u32) -> size_t;
3356    pub fn g_mime_yencode_step(inbuf: *const u8, inlen: size_t, outbuf: *mut u8, state: *mut c_int, pcrc: *mut u32, crc: *mut u32) -> size_t;
3357
3358}