[options]
girs_dir = "gir-files"
library = "Gio"
version = "2.0"
min_cfg_version = "2.32"
target_path = "."
work_mode = "normal"
single_version_file = true

generate = [
    "Gio.Action",
    "Gio.ActionMap",
    "Gio.AppInfo",
    "Gio.AppInfoCreateFlags",
    "Gio.AppLaunchContext",
    "Gio.ApplicationFlags",
    "Gio.AskPasswordFlags",
    "Gio.BufferedOutputStream",
    "Gio.Cancellable",
    "Gio.DataOutputStream",
    "Gio.DataStreamByteOrder",
    "Gio.DataStreamNewlineType",
    "Gio.FileCreateFlags",
    "Gio.FileInfo",
    "Gio.FileInputStream",
    "Gio.FileIOStream",
    "Gio.FileOutputStream",
    "Gio.FileQueryInfoFlags",
    "Gio.FileType",
    "Gio.Icon",
    "Gio.InetSocketAddress",
    "Gio.IOStreamSpliceFlags",
    "Gio.IOErrorEnum",
    "Gio.Menu",
    "Gio.MenuAttributeIter",
    "Gio.MenuItem",
    "Gio.MenuLinkIter",
    "Gio.MenuModel",
    "Gio.MountOperation",
    "Gio.MountOperationResult",
    "Gio.NetworkAddress",
    "Gio.NetworkService",
    "Gio.NotificationPriority",
    "Gio.OutputStreamSpliceFlags",
    "Gio.PasswordSave",
    "Gio.Permission",
    "Gio.Resolver",
    "Gio.ResolverRecordType",
    "Gio.ResourceError",
    "Gio.ResourceLookupFlags",
    "Gio.Seekable",
    "Gio.SettingsBindFlags",
    "Gio.SettingsSchema",
    "Gio.SettingsSchemaSource",
    "Gio.SimpleActionGroup",
    "Gio.SimplePermission",
    "Gio.SocketAddress",
    "Gio.SocketAddressEnumerator",
    "Gio.SocketClient",
    "Gio.SocketClientEvent",
    "Gio.SocketConnectable",
    "Gio.SocketConnection",
    "Gio.SocketFamily",
    "Gio.SocketListenerEvent",
    "Gio.SocketProtocol",
    "Gio.SocketService",
    "Gio.SocketType",
    "Gio.SrvTarget",
    "Gio.TcpConnection",
    "Gio.ThreadedSocketService",
    "Gio.ThemedIcon",
    "Gio.TlsAuthenticationMode",
    "Gio.TlsCertificate",
    "Gio.TlsCertificateFlags",
    "Gio.TlsCertificateRequestFlags",
    "Gio.TlsClientConnection",
    "Gio.TlsConnection",
    "Gio.TlsDatabase",
    "Gio.TlsDatabaseLookupFlags",
    "Gio.TlsDatabaseVerifyFlags",
    "Gio.TlsFileDatabase",
    "Gio.TlsInteraction",
    "Gio.TlsInteractionResult",
    "Gio.TlsPasswordFlags",
    "Gio.TlsRehandshakeMode",
    "Gio.TlsServerConnection",
]

ignore = [
]

manual = [
    "GLib.Bytes",
    "GLib.Error",
    "GLib.Variant",
    "GLib.VariantType",
    "GLib.IOCondition",
    "GLib.SeekType",
    "GLib.Source",
    "GLib.Priority",
    "GObject.Object",
]

[[object]]
name = "Gio.*"
status = "generate"
    [[object.function]]
    pattern = "unix_.+"
    cfg_condition = "unix"
    [[object.function]]
    pattern = "pollable_stream_.+"
    #belong to Stream, works only with PollableStream, need mutable buffer reference
    ignore = true

[[object]]
name = "Gio.ActionGroup"
status = "generate"
    [[object.function]]
    name = "query_action"
    ignore = true

[[object]]
name = "Gio.Application"
status = "generate"
    [[object.signal]]
    name = "open"
    ignore = true
    [[object.function]]
    name = "run"
    ignore = true

[[object]]
name = "Gio.BufferedInputStream"
status = "generate"
    [[object.function]]
    name = "peek"
    #have almost same peek_buffer
    ignore = true

[[object]]
name = "Gio.DataInputStream"
status = "generate"
    [[object.function]]
    name = "read_line"
    #return vec of u8
    ignore = true

    [[object.function]]
    name = "read_line_async"
    #return vec of u8
    ignore = true

[[object]]
name = "Gio.File"
status = "generate"
    [[object.function]]
    name = "new_for_path"
        [object.function.return]
        nullable = false
    [[object.function]]
    name = "new_for_uri"
        [object.function.return]
        nullable = false
    [[object.function]]
    name = "new_for_commandline_arg"
        [object.function.return]
        nullable = false
    [[object.function]]
    name = "new_for_commandline_arg_and_cwd"
        [object.function.return]
        nullable = false
    [[object.function]]
    name = "hash"
    ignore = true
    [[object.function]]
    name = "enumerate_children_async"
    # FileEnumerator
    ignore = true
    [[object.function]]
    name = "find_enclosing_mount_async"
    # Mount
    ignore = true

[[object]]
name = "Gio.FilterInputStream"
status = "generate"
    [[object.property]]
    name = "base-stream"
    #readonly
    ignore = true

[[object]]
name = "Gio.FilterOutputStream"
status = "generate"
    [[object.property]]
    name = "base-stream"
    #readonly
    ignore = true

[[object]]
name = "Gio.IOStream"
status = "generate"
    [[object.function]]
    name = "splice_async"
    #g_io_stream_splice_finish accept only 2 parameters instead normal 3 (no source_object)
    ignore = true
    [[object.property]]
    name = "input-stream"
    #readonly
    ignore = true
    [[object.property]]
    name = "output-stream"
    #readonly
    ignore = true

[[object]]
name = "Gio.InputStream"
status = "generate"
    [[object.function]]
    pattern = "read(_all)?(_async)?"
    #mutable buffer
    ignore = true

[[object]]
name = "Gio.MemoryInputStream"
status = "generate"
    [[object.function]]
    name = "new_from_data"
    #destroy function will called on passed data, so boxing free as in glib::Bytes impossible
    ignore = true
    [[object.function]]
    name = "add_data"
    #destroy function will called on passed data, so boxing free as in glib::Bytes impossible
    ignore = true

[[object]]
name = "Gio.MemoryOutputStream"
status = "generate"
    [[object.function]]
    name = "new"
    #unsupported memory allocators
    ignore = true
    [[object.function]]
    name = "get_data"
    #uncontrolled lifetime
    ignore = true
    [[object.function]]
    name = "get_size"
    #not usable
    ignore = true
    [[object.function]]
    name = "steal_data"
    #unsupported memory allocators
    ignore = true
    [[object.property]]
    name = "data"
    #uncontrolled lifetime
    ignore = true
    [[object.property]]
    name = "size"
    #not usable
    ignore = true
    [[object.property]]
    name = "destroy-function"
    #unsupported memory allocators
    ignore = true
    [[object.property]]
    name = "realloc-function"
    #unsupported memory allocators
    ignore = true

[[object]]
name = "Gio.Notification"
status = "generate"

[[object]]
name = "Gio.OutputStream"
status = "generate"
    [[object.function]]
    name = "write_async"
    #AsRef<u8>
    ignore = true
    [[object.function]]
    name = "write_all_async"
    #AsRef<u8>
    ignore = true

[[object]]
name = "Gio.Settings"
status = "generate"
    [[object.signal]]
    name = "writable-change-event"
    inhibit = true

[[object]]
name = "Gio.SimpleAction"
status = "generate"
    [[object.property]]
    name = "parameter-type"
    #value glib::VariantTy
    ignore = true
    [[object.property]]
    name = "state"
    #value glib::VariantTy
    ignore = true

[[object]]
name = "Gio.SimpleIOStream"
status = "generate"
    [[object.property]]
    name = "input-stream"
    #readonly
    ignore = true
    [[object.property]]
    name = "output-stream"
    #readonly
    ignore = true

[[object]]
name = "Gio.Socket"
status = "generate"
    [[object.function]]
    name = "new_from_fd"
    # has to use RawFd / SOCKET
    ignore = true

    [[object.function]]
    name = "get_fd"
    # has to use RawFd / SOCKET
    ignore = true

    [[object.property]]
    name = "fd"
    # has to use RawFd / SOCKET
    ignore = true

    [[object.function]]
    name = "create_source"
    # needs custom impl for Source callback
    ignore = true

    [[object.function]]
    pattern = "receive.*"
    # &[u8]
    ignore = true

    [[object.function]]
    pattern = "send.*"
    # &[u8]
    ignore = true

[[object]]
name = "Gio.InetAddress"
status = "generate"
    [[object.function]]
    name = "equal"
    # conflicting implementations
    ignore = true

    [[object.function]]
    name = "to_string"
    # conflicting implementations
    ignore = true

    [[object.function]]
    name = "new_from_bytes"
    # broken and needs some closer integration with the corresponding std types
    ignore = true

    [[object.function]]
    name = "to_bytes"
    # broken and needs some closer integration with the corresponding std types
    ignore = true

[[object]]
name = "Gio.SocketListener"
status = "generate"
    [[object.function]]
    name = "accept_socket_async"
    # finish function misses nullable return annotation
    ignore = true

[[object]]
name = "Gio.Resource"
status = "generate"
    [[object.function]]
    name = "new_from_data"
    # Requires special alignment, see
    # https://bugzilla.gnome.org/show_bug.cgi?id=790030
    ignore = true

[[object]]
name = "Gio.SettingsSchemaKey"
status = "generate"
version = "2.40"

[[object]]
name = "Gio.TlsPassword"
status = "generate"
    [[object.function]]
    name = "get_value"
    # missing inout annotation
    ignore = true

    [[object.function]]
    # missing (element-type guint8) annotation
    name = "set_value"
    ignore = true
