glib 0.14.0

Rust bindings for the GLib library
Documentation
[options]
girs_directories = ["../gir-files"]
library = "GLib"
version = "2.0"
min_cfg_version = "2.48"
target_path = "."
work_mode = "normal"
single_version_file = true
deprecate_by_min_version = true
trust_return_value_nullability = true

generate = [
    "GLib.DateDay",
    "GLib.DateMonth",
    "GLib.DateWeekday",
    "GLib.DateYear",
    "GLib.FileSetContentsFlags",
    "GLib.FormatSizeFlags",
    "GLib.KeyFileError",
    "GLib.KeyFileFlags",
    "GLib.LogLevelFlags",
    "GLib.OptionArg",
    "GLib.OptionFlags",
    "GLib.SeekType",
    "GLib.SpawnFlags",
    "GLib.Time",
    "GLib.TimeType",
    "GLib.TimeSpan",
    "GLib.FileTest",
    "GLib.IOCondition",
    "GLib.UriError",
    "GLib.UriFlags",
    "GLib.UriHideFlags",
    "GLib.UriParamsFlags",
]

ignore = [
]

manual = [
    "GLib.Bytes",
    "GLib.ByteArray",
    "GLib.Error",
    "GLib.Variant",
    "GLib.VariantType",
    "GLib.UserDirectory",
    "GObject.Object",
]

[[object]]
name = "GLib.*"
status = "generate"
    [[object.function]]
    name = "propagate_error"
    #empty first parameter
    ignore = true
    [[object.function]]
    name = "set_error_literal"
    #empty first parameter
    ignore = true
    [[object.function]]
    pattern = "atomic_.+"
    ignore = true
    [[object.function]]
    pattern = "bit_.*lock"
    ignore = true
    [[object.function]]
    name = "get_filename_charsets"
    #string
    ignore = true
    [[object.function]]
    pattern = "str.+v"
    #string
    ignore = true
    [[object.function]]
    name = "strv_length"
    #string
    ignore = true
    [[object.function]]
    pattern = "str.+"
    ignore = true
    [[object.function]]
    pattern = "ucs4_.+"
    ignore = true
    [[object.function]]
    pattern = "utf16_.+"
    ignore = true
    [[object.function]]
    pattern = "utf8_.+"
    ignore = true
    [[object.function]]
    pattern = "unichar_.+"
    ignore = true
    [[object.function]]
    pattern = "ascii_.+"
    ignore = true
    [[object.function]]
    name = "assertion_message_error"
    #Quark
    ignore = true
    [[object.function]]
    name = "assertion_message_expr"
    ignore = true # function is useless
    [[object.function]]
    pattern = "test_.+"
    ignore = true # functions are useless
    [[object.function]]
    pattern = ".+_error_quark"
    #Quark
    ignore = true
    [[object.function]]
    pattern = "quark_.+_string"
    #Quark
    ignore = true
    [[object.function]]
    name = "spawn_close_pid"
    #Pid
    ignore = true
    [[object.function]]
    name = "get_current_dir"
    #manual
    ignore = true
    [[object.function]]
    pattern = "[gs]et_prgname"
    #manual pathbuf
    ignore = true
    [[object.function]]
    name = "filename_from_utf8"
    #not in 64bit lib for Windows
    ignore = true
    [[object.function]]
    name = "get_user_name"
    #manual pathbuf is_windows_utf8
    ignore = true
    [[object.function]]
    pattern = "[gs]etenv"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "unsetenv"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "filename_to_uri"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "filename_from_uri"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "find_program_in_path"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "get_home_dir"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "get_real_name"
    #manual pathbuf? is_windows_utf8
    ignore = true
    [[object.function]]
    name = "get_tmp_dir"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "mkstemp"
    #manual is_windows_utf8
    ignore = true
    [[object.function]]
    name = "strdup"
    #not needed
    ignore = true
    [[object.function]]
    pattern = "unix_.+"
    cfg_condition = "unix"
    [[object.function]]
    name = "spawn_command_line_async"
    cfg_condition = "unix"
        [[object.function.parameter]]
        name = "command_line"
        string_type = "os_string"
    [[object.function]]
    name = "unix_open_pipe"
    manual = true
    [[object.function]]
    name = "convert_with_fallback"
    #out param not in .gir
    ignore = true
    [[object.function]]
    name = "unicode_canonical_decomposition"
    #out param not in .gir
    ignore = true
    [[object.function]]
    name = "unicode_canonical_ordering"
    #UCS-4 encoded string
    ignore = true
    [[object.function]]
    name = "convert"
    #unusable
    ignore = true
    [[object.function]]
    name = "filename_to_utf8"
    #unusable
    ignore = true
    [[object.function]]
    name = "locale_from_utf8"
    #unusable
    ignore = true
    [[object.function]]
    name = "locale_to_utf8"
    #unusable
    ignore = true
    [[object.function]]
    name = "child_watch_source_new"
    # Need manual bindings to be useful
    ignore = true
    [[object.function]]
    name = "idle_source_new"
    # Need manual bindings to be useful
    ignore = true
    [[object.function]]
    name = "timeout_source_new"
    # Need manual bindings to be useful
    ignore = true
    [[object.function]]
    name = "timeout_source_new_seconds"
    # Need manual bindings to be useful
    ignore = true
    [[object.function]]
    name = "unix_signal_source_new"
    # Need manual bindings to be useful
    ignore = true
    [[object.function]]
    pattern = "unix_fd.*"
    # Need manual binding for RawFd
    ignore = true
    [[object.function]]
    name = "close"
    # Need manual binding for RawFd
    ignore = true
    [[object.function]]
    name = "log_writer_is_journald"
    # Need manual binding for RawFd
    ignore = true
    [[object.function]]
    name = "log_writer_supports_color"
    # Need manual binding for RawFd
    ignore = true
    [[object.function]]
    name = "unix_set_fd_nonblocking"
    # Need manual binding for RawFd
    ignore = true
    [[object.function]]
    name = "environ_getenv"
    # manual input &[OsString]
    ignore = true
    [[object.function]]
    pattern = "environ_(un)?setenv"
    # unusable
    ignore = true
    [[object.function]]
    name = "get_charset"
    # boolean return value
    ignore = true
    [[object.function]]
    name = "get_environ"
        [object.function.return]
        string_type = "os_string"
    [[object.function]]
    name = "listenv"
        [object.function.return]
        string_type = "os_string"
    [[object.function]]
    name = "shell_parse_argv"
        [[object.function.parameter]]
        name = "command_line"
        string_type = "os_string"
        [[object.function.parameter]]
        name = "argvp"
        string_type = "os_string"
    [[object.function]]
    name = "shell_quote"
        [[object.function.parameter]]
        name = "unquoted_string"
        string_type = "os_string"
        [object.function.return]
        string_type = "os_string"
    [[object.function]]
    name = "shell_unquote"
        [[object.function.parameter]]
        name = "quoted_string"
        string_type = "os_string"
        [object.function.return]
        string_type = "os_string"
    [[object.function]]
    name = "intern_static_string"
    ignore = true
    [[object.function]]
    name = "intern_string"
    ignore = true
    [[object.function]]
    # Pid conversion issue
    name = "child_watch_add"
    ignore = true
    [[object.function]]
    # Pid conversion issue
    name = "child_watch_add_full"
    ignore = true
    [[object.function]]
    name = "idle_add"
    ignore = true
    [[object.function]]
    name = "idle_add_full"
    ignore = true
    [[object.function]]
    name = "timeout_add"
    ignore = true
    [[object.function]]
    name = "timeout_add_full"
    ignore = true
    [[object.function]]
    name = "timeout_add_seconds"
    ignore = true
    [[object.function]]
    name = "timeout_add_seconds_full"
    ignore = true
    [[object.function]]
    name = "unix_signal_add"
    ignore = true
    [[object.function]]
    name = "unix_signal_add_full"
    ignore = true
    [[object.function]]
    pattern = "rc_box_.+"
    #need manual implementation
    ignore = true
    [[object.function]]
    pattern = "ref_count_.+"
    #need manual implementation
    ignore = true
    [[object.function]]
    pattern = "ref_string_.+"
    #need manual implementation
    ignore = true
    [[object.function]]
    name = "spawn_async_with_fds"
    # generates invalid FDs
    ignore = true
    [[object.function]]
    name = "spawn_async_with_pipes"
    # generates invalid FDs
    ignore = true
    [[object.function]]
    name = "log_set_handler"
    # leaks closure
    ignore = true
    [[object.function]]
    name = "log_default_handler"
    # last argument is unused
    ignore = true
    [[object.function]]
    name = "log_set_handler_full"
    # from_glib_borrow on non-pointer objects
    ignore = true
    [[object.function]]
    name = "log_set_writer_func"
    # from_glib_borrow on non-pointer objects
    ignore = true
    [[object.function]]
    name = "log_structured"
    # implemented with a macro because of var args and weird arguments pairing
    ignore = true
    [[object.function]]
    name = "log"
    # implemented with a macro because of var args
    ignore = true
    [[object.function]]
    name = "log_set_default_handler"
    # It returned the old callback, which is problematic
    ignore = true
    [[object.function]]
    name = "log_remove_handler"
    # Change handler_id parameter type to LogHandlerId
    ignore = true
    [[object.function]]
    name = "log_set_always_fatal"
    # update of arguments and return type
    ignore = true
    [[object.function]]
    name = "log_variant"
    # usage of LogLevelFlags
    ignore = true
    [[object.function]]
    name = "log_set_fatal_mask"
    # update of arguments and return type
    ignore = true
    [[object.constant]]
    pattern = "DIR_SEPARATOR(_S)?"
    #not cross-platform
    ignore = true
    [[object.constant]]
    pattern = "SEARCHPATH_SEPARATOR(_S)?"
    #not cross-platform
    ignore = true
    [[object.constant]]
    name = "MODULE_SUFFIX"
    #not cross-platform
    ignore = true
    [[object.constant]]
    pattern = "GU?INT(16)?(32)?(64)?(PTR)?_FORMAT"
    #for C printf
    ignore = true
    [[object.constant]]
    pattern = "GU?INT(16)?(32)?(64)?(PTR)?_MODIFIER"
    #for C printf
    ignore = true
    [[object.constant]]
    pattern = "GS?SIZE_(FORMAT)?(MODIFIER)?"
    #for C printf
    ignore = true
    [[object.constant]]
    pattern = "GNUC_(PRETTY_)?FUNCTION"
    #for C printf
    ignore = true
    [[object.constant]]
    pattern = "PID_FORMAT"
    #for C printf
    ignore = true
    [[object.constant]]
    pattern = "POLLFD_FORMAT"
    #for C printf
    ignore = true
    [[object.function]]
    name = "variant_get_gtype"
    # get_type() function that should be used in StaticType impl instead
    ignore = true

[[object]]
name = "GLib.Checksum"
status = "generate"
concurrency = "send+sync"
    [[object.function]]
    name = "get_digest"
    #wrong array definition
    manual = true
    [[object.function]]
    name = "get_string"
    #consume
    manual = true

[[object]]
name = "GLib.ChecksumType"
status = "generate"
    [[object.member]]
    name = "sha384"
    version = "2.52"

[[object]]
name = "GLib.KeyFile"
status = "generate"
    [[object.function]]
    name = "load_from_data_dirs"
    manual = true
    [[object.function]]
    name = "load_from_dirs"
    manual = true
    [[object.function]]
    name = "save_to_file"
    # file parameter needs to be a PathBuf
    manual = true
    [[object.function]]
    name = "set_locale_string_list"
    #[&str] to *mut i8
    ignore = true
    [[object.function]]
    name = "set_string_list"
    #[&str] to *mut i8
    ignore = true
    [[object.function]]
    name = "to_data"
    manual = true
    [[object.function]]
    name = "set_double_list"
    #wrong array type
    ignore = true
    [[object.function]]
    name = "set_integer_list"
    #wrong array type
    ignore = true
    [[object.function]]
    name = "get_boolean"
    #boolean return value needs to be returned
    manual = true
    [[object.function]]
    name = "has_key"
    #boolean return value needs to be returned
    manual = true
    [[object.function]]
    name = "get_boolean_list"
    #boolean array needs to be converted to Vec<bool>
    manual = true
    [[object.function]]
    name = "get_string"
    # can return an error but still a value to be freed
    manual = true
    [[object.function]]
    name = "get_string_list"
    # can return an error but still a value to be freed
    manual = true
    [[object.function]]
    name = "get_locale_string"
    # can return an error but still a value to be freed
    manual = true
    [[object.function]]
    name = "get_locale_string_list"
    # can return an error but still a value to be freed
    manual = true
    [[object.function]]
    name = "get_comment"
        [[object.function.parameter]]
        name = "key"
        nullable = true

    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "get_start_group"
        [object.function.return]
        nullable = true

[[object]]
name = "GLib.DateTime"
status = "generate"
concurrency = "send+sync"
    [[object.function]]
    pattern = ".+"
        [object.function.return]
        nullable_return_is_error = "Invalid date"

[[object]]
name = "GLib.MainContext"
status = "generate"
concurrency = "send+sync"
    [[object.function]]
    name = "prepare"
    # out parameter not marked as such
    manual = true

    [[object.function]]
    name = "find_source_by_id"
    # source id is a newtype
    manual = true

    [[object.function]]
    name = "invoke"
    manual = true
    [[object.function]]
    name = "invoke_full"
    ignore = true

    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "get_thread_default"
        [object.function.return]
        nullable = true

    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "current_source"
        [object.function.return]
        nullable = true

    [[object.function]]
    name = "acquire"
    # implemented with a guard type
    manual = true

    [[object.function]]
    name = "release"
    # implemented with a guard type
    manual = true

[[object]]
name = "GLib.MainLoop"
status = "generate"
concurrency = "send+sync"

[[object]]
name = "GLib.Source"
status = "generate"
concurrency = "send+sync"
    [[object.function]]
    pattern = "set_.+"
    # Setters are generally not thread-safe
    # while GSource itself is
    ignore = true

    [[object.function]]
    pattern = "attach"
    # return type
    ignore = true

    [[object.function]]
    pattern = "get_id"
    # unsafe as it would allow multiple times to remove
    ignore = true

    [[object.function]]
    pattern = "remove"
    # parameter type
    ignore = true

    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "get_name"
        [object.function.return]
        nullable = true

[[object]]
name = "GLib.TimeZone"
status = "generate"
concurrency = "send+sync"
    [[object.function]]
    name = "adjust_time"
    # in-out parameter
    ignore = true


[[object]]
name = "GLib.Uri"
status = "generate"
concurrency = "send+sync"
    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "unescape_string"
        [object.function.return]
        nullable = true

    # Fixed in GLib 2.66.2
    [[object.function]]
    name = "unescape_segment"
        [object.function.return]
        nullable = true