gi-repository-sys 0.0.1

FFI bindings to libgirepository-2.0
Documentation
// Generated by gir (https://github.com/gtk-rs/gir @ 3f715d99469c)
// from ../gir-files (@ 6525c06593ee)
// DO NOT EDIT

#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]
#![cfg_attr(feature = "dox", feature(doc_cfg))]


#[allow(unused_imports)]
use libc::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
    c_short, c_ushort, c_long, c_ulong,
    c_void, size_t, ssize_t, intptr_t, uintptr_t, FILE};

#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};

// Aliases
pub type GIArgInfo = GIBaseInfo;
pub type GICallableInfo = GIBaseInfo;
pub type GICallbackInfo = GIBaseInfo;
pub type GIConstantInfo = GIBaseInfo;
pub type GIEnumInfo = GIBaseInfo;
pub type GIFieldInfo = GIBaseInfo;
pub type GIFunctionInfo = GIBaseInfo;
pub type GIInterfaceInfo = GIBaseInfo;
pub type GIObjectInfo = GIBaseInfo;
pub type GIPropertyInfo = GIBaseInfo;
pub type GIRegisteredTypeInfo = GIBaseInfo;
pub type GISignalInfo = GIBaseInfo;
pub type GIStructInfo = GIBaseInfo;
pub type GITypeInfo = GIBaseInfo;
pub type GIUnionInfo = GIBaseInfo;
pub type GIVFuncInfo = GIBaseInfo;
pub type GIValueInfo = GIBaseInfo;

// Enums
pub type GIArrayType = c_int;
pub const GI_ARRAY_TYPE_C: GIArrayType = 0;
pub const GI_ARRAY_TYPE_ARRAY: GIArrayType = 1;
pub const GI_ARRAY_TYPE_PTR_ARRAY: GIArrayType = 2;
pub const GI_ARRAY_TYPE_BYTE_ARRAY: GIArrayType = 3;

pub type GIDirection = c_int;
pub const GI_DIRECTION_IN: GIDirection = 0;
pub const GI_DIRECTION_OUT: GIDirection = 1;
pub const GI_DIRECTION_INOUT: GIDirection = 2;

pub type GIInfoType = c_int;
pub const GI_INFO_TYPE_INVALID: GIInfoType = 0;
pub const GI_INFO_TYPE_FUNCTION: GIInfoType = 1;
pub const GI_INFO_TYPE_CALLBACK: GIInfoType = 2;
pub const GI_INFO_TYPE_STRUCT: GIInfoType = 3;
pub const GI_INFO_TYPE_BOXED: GIInfoType = 4;
pub const GI_INFO_TYPE_ENUM: GIInfoType = 5;
pub const GI_INFO_TYPE_FLAGS: GIInfoType = 6;
pub const GI_INFO_TYPE_OBJECT: GIInfoType = 7;
pub const GI_INFO_TYPE_INTERFACE: GIInfoType = 8;
pub const GI_INFO_TYPE_CONSTANT: GIInfoType = 9;
pub const GI_INFO_TYPE_INVALID_0: GIInfoType = 10;
pub const GI_INFO_TYPE_UNION: GIInfoType = 11;
pub const GI_INFO_TYPE_VALUE: GIInfoType = 12;
pub const GI_INFO_TYPE_SIGNAL: GIInfoType = 13;
pub const GI_INFO_TYPE_VFUNC: GIInfoType = 14;
pub const GI_INFO_TYPE_PROPERTY: GIInfoType = 15;
pub const GI_INFO_TYPE_FIELD: GIInfoType = 16;
pub const GI_INFO_TYPE_ARG: GIInfoType = 17;
pub const GI_INFO_TYPE_TYPE: GIInfoType = 18;
pub const GI_INFO_TYPE_UNRESOLVED: GIInfoType = 19;

pub type GIRepositoryError = c_int;
pub const G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND: GIRepositoryError = 0;
pub const G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH: GIRepositoryError = 1;
pub const G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT: GIRepositoryError = 2;
pub const G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND: GIRepositoryError = 3;

pub type GIScopeType = c_int;
pub const GI_SCOPE_TYPE_INVALID: GIScopeType = 0;
pub const GI_SCOPE_TYPE_CALL: GIScopeType = 1;
pub const GI_SCOPE_TYPE_ASYNC: GIScopeType = 2;
pub const GI_SCOPE_TYPE_NOTIFIED: GIScopeType = 3;
pub const GI_SCOPE_TYPE_FOREVER: GIScopeType = 4;

pub type GITransfer = c_int;
pub const GI_TRANSFER_NOTHING: GITransfer = 0;
pub const GI_TRANSFER_CONTAINER: GITransfer = 1;
pub const GI_TRANSFER_EVERYTHING: GITransfer = 2;

pub type GITypeTag = c_int;
pub const GI_TYPE_TAG_VOID: GITypeTag = 0;
pub const GI_TYPE_TAG_BOOLEAN: GITypeTag = 1;
pub const GI_TYPE_TAG_INT8: GITypeTag = 2;
pub const GI_TYPE_TAG_UINT8: GITypeTag = 3;
pub const GI_TYPE_TAG_INT16: GITypeTag = 4;
pub const GI_TYPE_TAG_UINT16: GITypeTag = 5;
pub const GI_TYPE_TAG_INT32: GITypeTag = 6;
pub const GI_TYPE_TAG_UINT32: GITypeTag = 7;
pub const GI_TYPE_TAG_INT64: GITypeTag = 8;
pub const GI_TYPE_TAG_UINT64: GITypeTag = 9;
pub const GI_TYPE_TAG_FLOAT: GITypeTag = 10;
pub const GI_TYPE_TAG_DOUBLE: GITypeTag = 11;
pub const GI_TYPE_TAG_GTYPE: GITypeTag = 12;
pub const GI_TYPE_TAG_UTF8: GITypeTag = 13;
pub const GI_TYPE_TAG_FILENAME: GITypeTag = 14;
pub const GI_TYPE_TAG_ARRAY: GITypeTag = 15;
pub const GI_TYPE_TAG_INTERFACE: GITypeTag = 16;
pub const GI_TYPE_TAG_GLIST: GITypeTag = 17;
pub const GI_TYPE_TAG_GSLIST: GITypeTag = 18;
pub const GI_TYPE_TAG_GHASH: GITypeTag = 19;
pub const GI_TYPE_TAG_ERROR: GITypeTag = 20;
pub const GI_TYPE_TAG_UNICHAR: GITypeTag = 21;

pub type GInvokeError = c_int;
pub const G_INVOKE_ERROR_FAILED: GInvokeError = 0;
pub const G_INVOKE_ERROR_SYMBOL_NOT_FOUND: GInvokeError = 1;
pub const G_INVOKE_ERROR_ARGUMENT_MISMATCH: GInvokeError = 2;

// Constants
pub const GI_MAJOR_VERSION: c_int = 1;
pub const GI_TYPE_TAG_N_TYPES: c_int = 22;

// Flags
pub type GIFieldInfoFlags = c_uint;
pub const GI_FIELD_IS_READABLE: GIFieldInfoFlags = 1;
pub const GI_FIELD_IS_WRITABLE: GIFieldInfoFlags = 2;

pub type GIFunctionInfoFlags = c_uint;
pub const GI_FUNCTION_IS_METHOD: GIFunctionInfoFlags = 1;
pub const GI_FUNCTION_IS_CONSTRUCTOR: GIFunctionInfoFlags = 2;
pub const GI_FUNCTION_IS_GETTER: GIFunctionInfoFlags = 4;
pub const GI_FUNCTION_IS_SETTER: GIFunctionInfoFlags = 8;
pub const GI_FUNCTION_WRAPS_VFUNC: GIFunctionInfoFlags = 16;
pub const GI_FUNCTION_THROWS: GIFunctionInfoFlags = 32;

pub type GIRepositoryLoadFlags = c_uint;
pub const G_IREPOSITORY_LOAD_FLAG_LAZY: GIRepositoryLoadFlags = 1;

pub type GIVFuncInfoFlags = c_uint;
pub const GI_VFUNC_MUST_CHAIN_UP: GIVFuncInfoFlags = 1;
pub const GI_VFUNC_MUST_OVERRIDE: GIVFuncInfoFlags = 2;
pub const GI_VFUNC_MUST_NOT_OVERRIDE: GIVFuncInfoFlags = 4;
pub const GI_VFUNC_THROWS: GIVFuncInfoFlags = 8;

// Unions
#[derive(Copy, Clone)]
#[repr(C)]
pub union GIArgument {
    pub v_boolean: gboolean,
    pub v_int8: i8,
    pub v_uint8: u8,
    pub v_int16: i16,
    pub v_uint16: u16,
    pub v_int32: i32,
    pub v_uint32: u32,
    pub v_int64: i64,
    pub v_uint64: u64,
    pub v_float: c_float,
    pub v_double: c_double,
    pub v_short: c_short,
    pub v_ushort: c_ushort,
    pub v_int: c_int,
    pub v_uint: c_uint,
    pub v_long: c_long,
    pub v_ulong: c_ulong,
    pub v_ssize: ssize_t,
    pub v_size: size_t,
    pub v_string: *mut c_char,
    pub v_pointer: gpointer,
}

impl ::std::fmt::Debug for GIArgument {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GIArgument @ {self:p}"))
         .field("v_boolean", unsafe { &self.v_boolean })
         .field("v_int8", unsafe { &self.v_int8 })
         .field("v_uint8", unsafe { &self.v_uint8 })
         .field("v_int16", unsafe { &self.v_int16 })
         .field("v_uint16", unsafe { &self.v_uint16 })
         .field("v_int32", unsafe { &self.v_int32 })
         .field("v_uint32", unsafe { &self.v_uint32 })
         .field("v_int64", unsafe { &self.v_int64 })
         .field("v_uint64", unsafe { &self.v_uint64 })
         .field("v_float", unsafe { &self.v_float })
         .field("v_double", unsafe { &self.v_double })
         .field("v_short", unsafe { &self.v_short })
         .field("v_ushort", unsafe { &self.v_ushort })
         .field("v_int", unsafe { &self.v_int })
         .field("v_uint", unsafe { &self.v_uint })
         .field("v_long", unsafe { &self.v_long })
         .field("v_ulong", unsafe { &self.v_ulong })
         .field("v_ssize", unsafe { &self.v_ssize })
         .field("v_size", unsafe { &self.v_size })
         .field("v_string", unsafe { &self.v_string })
         .field("v_pointer", unsafe { &self.v_pointer })
         .finish()
    }
}

// Callbacks
pub type GIObjectInfoGetValueFunction = Option<unsafe extern "C" fn(*const gobject::GValue) -> *mut c_void>;
pub type GIObjectInfoRefFunction = Option<unsafe extern "C" fn(*mut c_void) -> *mut c_void>;
pub type GIObjectInfoSetValueFunction = Option<unsafe extern "C" fn(*mut gobject::GValue, *mut c_void)>;
pub type GIObjectInfoUnrefFunction = Option<unsafe extern "C" fn(*mut c_void)>;

// Records
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GIAttributeIter {
    pub data: gpointer,
    pub data2: gpointer,
    pub data3: gpointer,
    pub data4: gpointer,
}

impl ::std::fmt::Debug for GIAttributeIter {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GIAttributeIter @ {self:p}"))
         .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GIBaseInfo {
    pub dummy1: i32,
    pub dummy2: i32,
    pub dummy3: gpointer,
    pub dummy4: gpointer,
    pub dummy5: gpointer,
    pub dummy6: u32,
    pub dummy7: u32,
    pub padding: [gpointer; 4],
}

impl ::std::fmt::Debug for GIBaseInfo {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GIBaseInfo @ {self:p}"))
         .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GIRepositoryClass {
    pub parent: gobject::GObjectClass,
}

impl ::std::fmt::Debug for GIRepositoryClass {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GIRepositoryClass @ {self:p}"))
         .finish()
    }
}

#[repr(C)]
pub struct _GIRepositoryPrivate {
    _data: [u8; 0],
    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}

pub type GIRepositoryPrivate = *mut _GIRepositoryPrivate;

#[repr(C)]
pub struct _GITypelib {
    _data: [u8; 0],
    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}

pub type GITypelib = *mut _GITypelib;

#[repr(C)]
pub struct _GIUnresolvedInfo {
    _data: [u8; 0],
    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
}

pub type GIUnresolvedInfo = *mut _GIUnresolvedInfo;

// Classes
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GIRepository {
    pub parent: gobject::GObject,
    pub priv_: *mut GIRepositoryPrivate,
}

impl ::std::fmt::Debug for GIRepository {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GIRepository @ {self:p}"))
         .finish()
    }
}

#[link(name = "girepository-1.0")]
extern "C" {

    //=========================================================================
    // GIBaseInfo
    //=========================================================================
    pub fn g_base_info_gtype_get_type() -> GType;
    pub fn g_base_info_equal(info1: *mut GIBaseInfo, info2: *mut GIBaseInfo) -> gboolean;
    pub fn g_base_info_get_attribute(info: *mut GIBaseInfo, name: *const c_char) -> *const c_char;
    pub fn g_base_info_get_container(info: *mut GIBaseInfo) -> *mut GIBaseInfo;
    pub fn g_base_info_get_name(info: *mut GIBaseInfo) -> *const c_char;
    pub fn g_base_info_get_namespace(info: *mut GIBaseInfo) -> *const c_char;
    pub fn g_base_info_get_type(info: *mut GIBaseInfo) -> GIInfoType;
    pub fn g_base_info_get_typelib(info: *mut GIBaseInfo) -> *mut GITypelib;
    pub fn g_base_info_is_deprecated(info: *mut GIBaseInfo) -> gboolean;
    pub fn g_base_info_iterate_attributes(info: *mut GIBaseInfo, iterator: *mut GIAttributeIter, name: *mut *mut c_char, value: *mut *mut c_char) -> gboolean;
    pub fn g_base_info_ref(info: *mut GIBaseInfo) -> *mut GIBaseInfo;
    pub fn g_base_info_unref(info: *mut GIBaseInfo);

    //=========================================================================
    // GITypelib
    //=========================================================================
    pub fn g_typelib_free(typelib: *mut GITypelib);
    pub fn g_typelib_get_namespace(typelib: *mut GITypelib) -> *const c_char;
    pub fn g_typelib_symbol(typelib: *mut GITypelib, symbol_name: *const c_char, symbol: *mut gpointer) -> gboolean;
    pub fn g_typelib_new_from_const_memory(memory: *const u8, len: size_t, error: *mut *mut glib::GError) -> *mut GITypelib;
    pub fn g_typelib_new_from_mapped_file(mfile: *mut glib::GMappedFile, error: *mut *mut glib::GError) -> *mut GITypelib;
    pub fn g_typelib_new_from_memory(memory: *mut u8, len: size_t, error: *mut *mut glib::GError) -> *mut GITypelib;

    //=========================================================================
    // GIRepository
    //=========================================================================
    pub fn g_irepository_get_type() -> GType;
    pub fn g_irepository_dump(arg: *const c_char, error: *mut *mut glib::GError) -> gboolean;
    pub fn g_irepository_error_quark() -> glib::GQuark;
    pub fn g_irepository_get_default() -> *mut GIRepository;
    pub fn g_irepository_get_option_group() -> *mut glib::GOptionGroup;
    pub fn g_irepository_get_search_path() -> *mut glib::GSList;
    pub fn g_irepository_prepend_library_path(directory: *const c_char);
    pub fn g_irepository_prepend_search_path(directory: *const c_char);
    pub fn g_irepository_enumerate_versions(repository: *mut GIRepository, namespace_: *const c_char) -> *mut glib::GList;
    pub fn g_irepository_find_by_error_domain(repository: *mut GIRepository, domain: glib::GQuark) -> *mut GIEnumInfo;
    pub fn g_irepository_find_by_gtype(repository: *mut GIRepository, gtype: GType) -> *mut GIBaseInfo;
    pub fn g_irepository_find_by_name(repository: *mut GIRepository, namespace_: *const c_char, name: *const c_char) -> *mut GIBaseInfo;
    pub fn g_irepository_get_c_prefix(repository: *mut GIRepository, namespace_: *const c_char) -> *const c_char;
    pub fn g_irepository_get_dependencies(repository: *mut GIRepository, namespace_: *const c_char) -> *mut *mut c_char;
    pub fn g_irepository_get_immediate_dependencies(repository: *mut GIRepository, namespace_: *const c_char) -> *mut *mut c_char;
    pub fn g_irepository_get_info(repository: *mut GIRepository, namespace_: *const c_char, index: c_int) -> *mut GIBaseInfo;
    pub fn g_irepository_get_loaded_namespaces(repository: *mut GIRepository) -> *mut *mut c_char;
    pub fn g_irepository_get_n_infos(repository: *mut GIRepository, namespace_: *const c_char) -> c_int;
    pub fn g_irepository_get_object_gtype_interfaces(repository: *mut GIRepository, gtype: GType, n_interfaces_out: *mut c_uint, interfaces_out: *mut *mut *mut GIInterfaceInfo);
    pub fn g_irepository_get_shared_library(repository: *mut GIRepository, namespace_: *const c_char) -> *const c_char;
    pub fn g_irepository_get_typelib_path(repository: *mut GIRepository, namespace_: *const c_char) -> *const c_char;
    pub fn g_irepository_get_version(repository: *mut GIRepository, namespace_: *const c_char) -> *const c_char;
    pub fn g_irepository_is_registered(repository: *mut GIRepository, namespace_: *const c_char, version: *const c_char) -> gboolean;
    pub fn g_irepository_load_typelib(repository: *mut GIRepository, typelib: *mut GITypelib, flags: GIRepositoryLoadFlags, error: *mut *mut glib::GError) -> *const c_char;
    pub fn g_irepository_require(repository: *mut GIRepository, namespace_: *const c_char, version: *const c_char, flags: GIRepositoryLoadFlags, error: *mut *mut glib::GError) -> *mut GITypelib;
    pub fn g_irepository_require_private(repository: *mut GIRepository, typelib_dir: *const c_char, namespace_: *const c_char, version: *const c_char, flags: GIRepositoryLoadFlags, error: *mut *mut glib::GError) -> *mut GITypelib;

    //=========================================================================
    // Other functions
    //=========================================================================
    pub fn g_arg_info_get_closure(info: *mut GIArgInfo) -> c_int;
    pub fn g_arg_info_get_destroy(info: *mut GIArgInfo) -> c_int;
    pub fn g_arg_info_get_direction(info: *mut GIArgInfo) -> GIDirection;
    pub fn g_arg_info_get_ownership_transfer(info: *mut GIArgInfo) -> GITransfer;
    pub fn g_arg_info_get_scope(info: *mut GIArgInfo) -> GIScopeType;
    pub fn g_arg_info_get_type(info: *mut GIArgInfo) -> *mut GITypeInfo;
    pub fn g_arg_info_is_caller_allocates(info: *mut GIArgInfo) -> gboolean;
    pub fn g_arg_info_is_optional(info: *mut GIArgInfo) -> gboolean;
    pub fn g_arg_info_is_return_value(info: *mut GIArgInfo) -> gboolean;
    pub fn g_arg_info_is_skip(info: *mut GIArgInfo) -> gboolean;
    pub fn g_arg_info_load_type(info: *mut GIArgInfo, type_: *mut GITypeInfo);
    pub fn g_arg_info_may_be_null(info: *mut GIArgInfo) -> gboolean;
    pub fn g_callable_info_can_throw_gerror(info: *mut GICallableInfo) -> gboolean;
    pub fn g_callable_info_get_arg(info: *mut GICallableInfo, n: c_int) -> *mut GIArgInfo;
    pub fn g_callable_info_get_caller_owns(info: *mut GICallableInfo) -> GITransfer;
    pub fn g_callable_info_get_instance_ownership_transfer(info: *mut GICallableInfo) -> GITransfer;
    pub fn g_callable_info_get_n_args(info: *mut GICallableInfo) -> c_int;
    pub fn g_callable_info_get_return_attribute(info: *mut GICallableInfo, name: *const c_char) -> *const c_char;
    pub fn g_callable_info_get_return_type(info: *mut GICallableInfo) -> *mut GITypeInfo;
    pub fn g_callable_info_invoke(info: *mut GICallableInfo, function: gpointer, in_args: *const GIArgument, n_in_args: c_int, out_args: *const GIArgument, n_out_args: c_int, return_value: *mut GIArgument, is_method: gboolean, throws: gboolean, error: *mut *mut glib::GError) -> gboolean;
    pub fn g_callable_info_is_method(info: *mut GICallableInfo) -> gboolean;
    pub fn g_callable_info_iterate_return_attributes(info: *mut GICallableInfo, iterator: *mut GIAttributeIter, name: *mut *mut c_char, value: *mut *mut c_char) -> gboolean;
    pub fn g_callable_info_load_arg(info: *mut GICallableInfo, n: c_int, arg: *mut GIArgInfo);
    pub fn g_callable_info_load_return_type(info: *mut GICallableInfo, type_: *mut GITypeInfo);
    pub fn g_callable_info_may_return_null(info: *mut GICallableInfo) -> gboolean;
    pub fn g_callable_info_skip_return(info: *mut GICallableInfo) -> gboolean;
    pub fn gi_cclosure_marshal_generic(closure: *mut gobject::GClosure, return_gvalue: *mut gobject::GValue, n_param_values: c_uint, param_values: *const gobject::GValue, invocation_hint: gpointer, marshal_data: gpointer);
    pub fn g_constant_info_free_value(info: *mut GIConstantInfo, value: *mut GIArgument);
    pub fn g_constant_info_get_type(info: *mut GIConstantInfo) -> *mut GITypeInfo;
    pub fn g_constant_info_get_value(info: *mut GIConstantInfo, value: *mut GIArgument) -> c_int;
    pub fn g_enum_info_get_error_domain(info: *mut GIEnumInfo) -> *const c_char;
    pub fn g_enum_info_get_method(info: *mut GIEnumInfo, n: c_int) -> *mut GIFunctionInfo;
    pub fn g_enum_info_get_n_methods(info: *mut GIEnumInfo) -> c_int;
    pub fn g_enum_info_get_n_values(info: *mut GIEnumInfo) -> c_int;
    pub fn g_enum_info_get_storage_type(info: *mut GIEnumInfo) -> GITypeTag;
    pub fn g_enum_info_get_value(info: *mut GIEnumInfo, n: c_int) -> *mut GIValueInfo;
    pub fn g_field_info_get_field(field_info: *mut GIFieldInfo, mem: gpointer, value: *mut GIArgument) -> gboolean;
    pub fn g_field_info_get_flags(info: *mut GIFieldInfo) -> GIFieldInfoFlags;
    pub fn g_field_info_get_offset(info: *mut GIFieldInfo) -> c_int;
    pub fn g_field_info_get_size(info: *mut GIFieldInfo) -> c_int;
    pub fn g_field_info_get_type(info: *mut GIFieldInfo) -> *mut GITypeInfo;
    pub fn g_field_info_set_field(field_info: *mut GIFieldInfo, mem: gpointer, value: *const GIArgument) -> gboolean;
    pub fn g_function_info_get_flags(info: *mut GIFunctionInfo) -> GIFunctionInfoFlags;
    pub fn g_function_info_get_property(info: *mut GIFunctionInfo) -> *mut GIPropertyInfo;
    pub fn g_function_info_get_symbol(info: *mut GIFunctionInfo) -> *const c_char;
    pub fn g_function_info_get_vfunc(info: *mut GIFunctionInfo) -> *mut GIVFuncInfo;
    pub fn g_function_info_invoke(info: *mut GIFunctionInfo, in_args: *const GIArgument, n_in_args: c_int, out_args: *const GIArgument, n_out_args: c_int, return_value: *mut GIArgument, error: *mut *mut glib::GError) -> gboolean;
    pub fn gi_get_major_version() -> c_uint;
    pub fn gi_get_micro_version() -> c_uint;
    pub fn gi_get_minor_version() -> c_uint;
    pub fn g_info_new(type_: GIInfoType, container: *mut GIBaseInfo, typelib: *mut GITypelib, offset: u32) -> *mut GIBaseInfo;
    pub fn g_info_type_to_string(type_: GIInfoType) -> *const c_char;
    pub fn g_interface_info_find_method(info: *mut GIInterfaceInfo, name: *const c_char) -> *mut GIFunctionInfo;
    pub fn g_interface_info_find_signal(info: *mut GIInterfaceInfo, name: *const c_char) -> *mut GISignalInfo;
    pub fn g_interface_info_find_vfunc(info: *mut GIInterfaceInfo, name: *const c_char) -> *mut GIVFuncInfo;
    pub fn g_interface_info_get_constant(info: *mut GIInterfaceInfo, n: c_int) -> *mut GIConstantInfo;
    pub fn g_interface_info_get_iface_struct(info: *mut GIInterfaceInfo) -> *mut GIStructInfo;
    pub fn g_interface_info_get_method(info: *mut GIInterfaceInfo, n: c_int) -> *mut GIFunctionInfo;
    pub fn g_interface_info_get_n_constants(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_n_methods(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_n_prerequisites(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_n_properties(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_n_signals(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_n_vfuncs(info: *mut GIInterfaceInfo) -> c_int;
    pub fn g_interface_info_get_prerequisite(info: *mut GIInterfaceInfo, n: c_int) -> *mut GIBaseInfo;
    pub fn g_interface_info_get_property(info: *mut GIInterfaceInfo, n: c_int) -> *mut GIPropertyInfo;
    pub fn g_interface_info_get_signal(info: *mut GIInterfaceInfo, n: c_int) -> *mut GISignalInfo;
    pub fn g_interface_info_get_vfunc(info: *mut GIInterfaceInfo, n: c_int) -> *mut GIVFuncInfo;
    pub fn g_invoke_error_quark() -> glib::GQuark;
    pub fn g_object_info_find_method(info: *mut GIObjectInfo, name: *const c_char) -> *mut GIFunctionInfo;
    pub fn g_object_info_find_method_using_interfaces(info: *mut GIObjectInfo, name: *const c_char, implementor: *mut *mut GIObjectInfo) -> *mut GIFunctionInfo;
    pub fn g_object_info_find_signal(info: *mut GIObjectInfo, name: *const c_char) -> *mut GISignalInfo;
    pub fn g_object_info_find_vfunc(info: *mut GIObjectInfo, name: *const c_char) -> *mut GIVFuncInfo;
    pub fn g_object_info_find_vfunc_using_interfaces(info: *mut GIObjectInfo, name: *const c_char, implementor: *mut *mut GIObjectInfo) -> *mut GIVFuncInfo;
    pub fn g_object_info_get_abstract(info: *mut GIObjectInfo) -> gboolean;
    pub fn g_object_info_get_class_struct(info: *mut GIObjectInfo) -> *mut GIStructInfo;
    pub fn g_object_info_get_constant(info: *mut GIObjectInfo, n: c_int) -> *mut GIConstantInfo;
    pub fn g_object_info_get_field(info: *mut GIObjectInfo, n: c_int) -> *mut GIFieldInfo;
    pub fn g_object_info_get_final(info: *mut GIObjectInfo) -> gboolean;
    pub fn g_object_info_get_fundamental(info: *mut GIObjectInfo) -> gboolean;
    pub fn g_object_info_get_get_value_function(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_get_value_function_pointer(info: *mut GIObjectInfo) -> GIObjectInfoGetValueFunction;
    pub fn g_object_info_get_interface(info: *mut GIObjectInfo, n: c_int) -> *mut GIInterfaceInfo;
    pub fn g_object_info_get_method(info: *mut GIObjectInfo, n: c_int) -> *mut GIFunctionInfo;
    pub fn g_object_info_get_n_constants(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_fields(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_interfaces(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_methods(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_properties(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_signals(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_n_vfuncs(info: *mut GIObjectInfo) -> c_int;
    pub fn g_object_info_get_parent(info: *mut GIObjectInfo) -> *mut GIObjectInfo;
    pub fn g_object_info_get_property(info: *mut GIObjectInfo, n: c_int) -> *mut GIPropertyInfo;
    pub fn g_object_info_get_ref_function(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_ref_function_pointer(info: *mut GIObjectInfo) -> GIObjectInfoRefFunction;
    pub fn g_object_info_get_set_value_function(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_set_value_function_pointer(info: *mut GIObjectInfo) -> GIObjectInfoSetValueFunction;
    pub fn g_object_info_get_signal(info: *mut GIObjectInfo, n: c_int) -> *mut GISignalInfo;
    pub fn g_object_info_get_type_init(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_type_name(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_unref_function(info: *mut GIObjectInfo) -> *const c_char;
    pub fn g_object_info_get_unref_function_pointer(info: *mut GIObjectInfo) -> GIObjectInfoUnrefFunction;
    pub fn g_object_info_get_vfunc(info: *mut GIObjectInfo, n: c_int) -> *mut GIVFuncInfo;
    pub fn g_property_info_get_flags(info: *mut GIPropertyInfo) -> gobject::GParamFlags;
    pub fn g_property_info_get_getter(info: *mut GIPropertyInfo) -> *mut GIFunctionInfo;
    pub fn g_property_info_get_ownership_transfer(info: *mut GIPropertyInfo) -> GITransfer;
    pub fn g_property_info_get_setter(info: *mut GIPropertyInfo) -> *mut GIFunctionInfo;
    pub fn g_property_info_get_type(info: *mut GIPropertyInfo) -> *mut GITypeInfo;
    pub fn g_registered_type_info_get_g_type(info: *mut GIRegisteredTypeInfo) -> GType;
    pub fn g_registered_type_info_get_type_init(info: *mut GIRegisteredTypeInfo) -> *const c_char;
    pub fn g_registered_type_info_get_type_name(info: *mut GIRegisteredTypeInfo) -> *const c_char;
    pub fn g_signal_info_get_class_closure(info: *mut GISignalInfo) -> *mut GIVFuncInfo;
    pub fn g_signal_info_get_flags(info: *mut GISignalInfo) -> gobject::GSignalFlags;
    pub fn g_signal_info_true_stops_emit(info: *mut GISignalInfo) -> gboolean;
    pub fn g_struct_info_find_field(info: *mut GIStructInfo, name: *const c_char) -> *mut GIFieldInfo;
    pub fn g_struct_info_find_method(info: *mut GIStructInfo, name: *const c_char) -> *mut GIFunctionInfo;
    pub fn g_struct_info_get_alignment(info: *mut GIStructInfo) -> size_t;
    pub fn g_struct_info_get_field(info: *mut GIStructInfo, n: c_int) -> *mut GIFieldInfo;
    pub fn g_struct_info_get_method(info: *mut GIStructInfo, n: c_int) -> *mut GIFunctionInfo;
    pub fn g_struct_info_get_n_fields(info: *mut GIStructInfo) -> c_int;
    pub fn g_struct_info_get_n_methods(info: *mut GIStructInfo) -> c_int;
    pub fn g_struct_info_get_size(info: *mut GIStructInfo) -> size_t;
    pub fn g_struct_info_is_foreign(info: *mut GIStructInfo) -> gboolean;
    pub fn g_struct_info_is_gtype_struct(info: *mut GIStructInfo) -> gboolean;
    pub fn g_type_info_argument_from_hash_pointer(info: *mut GITypeInfo, hash_pointer: gpointer, arg: *mut GIArgument);
    pub fn g_type_info_get_array_fixed_size(info: *mut GITypeInfo) -> c_int;
    pub fn g_type_info_get_array_length(info: *mut GITypeInfo) -> c_int;
    pub fn g_type_info_get_array_type(info: *mut GITypeInfo) -> GIArrayType;
    pub fn g_type_info_get_interface(info: *mut GITypeInfo) -> *mut GIBaseInfo;
    pub fn g_type_info_get_param_type(info: *mut GITypeInfo, n: c_int) -> *mut GITypeInfo;
    pub fn g_type_info_get_storage_type(info: *mut GITypeInfo) -> GITypeTag;
    pub fn g_type_info_get_tag(info: *mut GITypeInfo) -> GITypeTag;
    pub fn g_type_info_hash_pointer_from_argument(info: *mut GITypeInfo, arg: *mut GIArgument) -> gpointer;
    pub fn g_type_info_is_pointer(info: *mut GITypeInfo) -> gboolean;
    pub fn g_type_info_is_zero_terminated(info: *mut GITypeInfo) -> gboolean;
    pub fn gi_type_tag_argument_from_hash_pointer(storage_type: GITypeTag, hash_pointer: gpointer, arg: *mut GIArgument);
    pub fn gi_type_tag_hash_pointer_from_argument(storage_type: GITypeTag, arg: *mut GIArgument) -> gpointer;
    pub fn g_type_tag_to_string(type_: GITypeTag) -> *const c_char;
    pub fn g_union_info_find_method(info: *mut GIUnionInfo, name: *const c_char) -> *mut GIFunctionInfo;
    pub fn g_union_info_get_alignment(info: *mut GIUnionInfo) -> size_t;
    pub fn g_union_info_get_discriminator(info: *mut GIUnionInfo, n: c_int) -> *mut GIConstantInfo;
    pub fn g_union_info_get_discriminator_offset(info: *mut GIUnionInfo) -> c_int;
    pub fn g_union_info_get_discriminator_type(info: *mut GIUnionInfo) -> *mut GITypeInfo;
    pub fn g_union_info_get_field(info: *mut GIUnionInfo, n: c_int) -> *mut GIFieldInfo;
    pub fn g_union_info_get_method(info: *mut GIUnionInfo, n: c_int) -> *mut GIFunctionInfo;
    pub fn g_union_info_get_n_fields(info: *mut GIUnionInfo) -> c_int;
    pub fn g_union_info_get_n_methods(info: *mut GIUnionInfo) -> c_int;
    pub fn g_union_info_get_size(info: *mut GIUnionInfo) -> size_t;
    pub fn g_union_info_is_discriminated(info: *mut GIUnionInfo) -> gboolean;
    pub fn g_value_info_get_value(info: *mut GIValueInfo) -> i64;
    pub fn g_vfunc_info_get_address(info: *mut GIVFuncInfo, implementor_gtype: GType, error: *mut *mut glib::GError) -> gpointer;
    pub fn g_vfunc_info_get_flags(info: *mut GIVFuncInfo) -> GIVFuncInfoFlags;
    pub fn g_vfunc_info_get_invoker(info: *mut GIVFuncInfo) -> *mut GIFunctionInfo;
    pub fn g_vfunc_info_get_offset(info: *mut GIVFuncInfo) -> c_int;
    pub fn g_vfunc_info_get_signal(info: *mut GIVFuncInfo) -> *mut GISignalInfo;
    pub fn g_vfunc_info_invoke(info: *mut GIVFuncInfo, implementor: GType, in_args: *const GIArgument, n_in_args: c_int, out_args: *const GIArgument, n_out_args: c_int, return_value: *mut GIArgument, error: *mut *mut glib::GError) -> gboolean;

}