<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="AppStream" version="1.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <package name="appstream-compose"/>
  <c:include name="appstream-compose.h"/>
  <doc:format name="unknown"/>
  <namespace name="AppStreamCompose"
             version="1.0"
             shared-library="libappstream-compose.so.0"
             c:identifier-prefixes="Asc"
             c:symbol-prefixes="asc">
    <class name="Canvas"
           c:symbol-prefix="canvas"
           c:type="AscCanvas"
           parent="GObject.Object"
           glib:type-name="AscCanvas"
           glib:get-type="asc_canvas_get_type"
           glib:type-struct="CanvasClass">
      <source-position filename="compose/asc-canvas.h" line="34"/>
      <constructor name="new" c:identifier="asc_canvas_new">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="95">Creates a new #AscFont.</doc>
        <source-position filename="compose/asc-canvas.h" line="57"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-canvas.c"
               line="100">an #AscCanvas</doc>
          <type name="Canvas" c:type="AscCanvas*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_height" c:identifier="asc_canvas_get_height">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="131">Gets the canvas height.</doc>
        <source-position filename="compose/asc-canvas.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="canvas" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="133">an #AscCanvas instance.</doc>
            <type name="Canvas" c:type="AscCanvas*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="asc_canvas_get_width">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="118">Gets the canvas width.</doc>
        <source-position filename="compose/asc-canvas.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="canvas" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="120">an #AscCanvas instance.</doc>
            <type name="Canvas" c:type="AscCanvas*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="render_svg"
              c:identifier="asc_canvas_render_svg"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="144">Render an SVG graphic from the SVG data provided.</doc>
        <source-position filename="compose/asc-canvas.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="canvas" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="146">an #AscCanvas instance.</doc>
            <type name="Canvas" c:type="AscCanvas*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="147">SVG data input stream.</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_png" c:identifier="asc_canvas_save_png" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="419">Save canvas to PNG file.</doc>
        <source-position filename="compose/asc-canvas.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="canvas" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="421">an #AscCanvas instance.</doc>
            <type name="Canvas" c:type="AscCanvas*"/>
          </instance-parameter>
          <parameter name="fname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-canvas.c"
                 line="422">Filename to save to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="CanvasClass"
            c:type="AscCanvasClass"
            glib:is-gtype-struct-for="Canvas">
      <source-position filename="compose/asc-canvas.h" line="34"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CanvasError"
                 glib:type-name="AscCanvasError"
                 glib:get-type="asc_canvas_error_get_type"
                 c:type="AscCanvasError"
                 glib:error-domain="AscCanvasError">
      <doc xml:space="preserve"
           filename="compose/asc-canvas.h"
           line="36">A drawing error.</doc>
      <member name="failed"
              value="0"
              c:identifier="ASC_CANVAS_ERROR_FAILED"
              glib:nick="failed"
              glib:name="ASC_CANVAS_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.h"
             line="38">Generic failure.</doc>
      </member>
      <member name="drawing"
              value="1"
              c:identifier="ASC_CANVAS_ERROR_DRAWING"
              glib:nick="drawing"
              glib:name="ASC_CANVAS_ERROR_DRAWING">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.h"
             line="39">Drawing operation failed.</doc>
      </member>
      <member name="font"
              value="2"
              c:identifier="ASC_CANVAS_ERROR_FONT"
              glib:nick="font"
              glib:name="ASC_CANVAS_ERROR_FONT">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.h"
             line="40">Issue with font or font selection.</doc>
      </member>
      <member name="unsupported"
              value="3"
              c:identifier="ASC_CANVAS_ERROR_UNSUPPORTED"
              glib:nick="unsupported"
              glib:name="ASC_CANVAS_ERROR_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.h"
             line="41">The requested action was not supported.</doc>
      </member>
      <function name="quark" c:identifier="asc_canvas_error_quark">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-canvas.c"
               line="58">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <callback name="CheckMetadataEarlyFn" c:type="AscCheckMetadataEarlyFn">
      <doc xml:space="preserve"
           filename="compose/asc-compose.h"
           line="83">Function which is called after all metainfo and related data (e.g. desktop-entry files)
has been loaded, but *before* any expensive operations such as screenshot downloads or
font searches are performed.

This function can be useful to filter out unwanted components early in the process and
avoid unneeded downloads and other data processing.
By the time this function is called, the component's global ID should be finalized
and should not change any longer.

Please note that this function may be called from any thread, and thread safety needs
to be taked care off by the callee.</doc>
      <source-position filename="compose/asc-compose.h" line="101"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="cres" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="85">A pointer to generated #AscResult</doc>
          <type name="Result" c:type="AscResult*"/>
        </parameter>
        <parameter name="unit" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="86">The unit we are currently processing.</doc>
          <type name="Unit" c:type="const AscUnit*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="87">Additional data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Compose"
           c:symbol-prefix="compose"
           c:type="AscCompose"
           parent="GObject.Object"
           glib:type-name="AscCompose"
           glib:get-type="asc_compose_get_type"
           glib:type-struct="ComposeClass">
      <source-position filename="compose/asc-compose.h" line="45"/>
      <constructor name="new" c:identifier="asc_compose_new">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2306">Creates a new #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="121"/>
        <return-value transfer-ownership="full">
          <type name="Compose" c:type="AscCompose*"/>
        </return-value>
      </constructor>
      <method name="add_allowed_cid"
              c:identifier="asc_compose_add_allowed_cid">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="189">Adds a component ID to the allowlist. If the list is not empty, only
components in the list will be added to the metadata output.</doc>
        <source-position filename="compose/asc-compose.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="191">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="192">The component-id to whitelist</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_custom_allowed"
              c:identifier="asc_compose_add_custom_allowed">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="579">Add a key to the allowlist that is used to filter custom tag values.</doc>
        <source-position filename="compose/asc-compose.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="581">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="582">the custom key to add to the allowed list.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_flags" c:identifier="asc_compose_add_flags">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="352">Add compose flags.</doc>
        <source-position filename="compose/asc-compose.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="354">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="355">The compose flags to add.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_unit" c:identifier="asc_compose_add_unit">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="166">Add an #AscUnit as data source for metadata processing.</doc>
        <source-position filename="compose/asc-compose.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="168">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="169">The #AscUnit to add</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </parameter>
        </parameters>
      </method>
      <method name="fetch_components"
              c:identifier="asc_compose_fetch_components">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="719">Get the results components extracted in the last data processing run.</doc>
        <source-position filename="compose/asc-compose.h" line="180"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="725">The components</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AppStream.Component"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="721">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="finalize_result"
              c:identifier="asc_compose_finalize_result">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2131">Perform final validation of generated data for the specified
result container.</doc>
        <source-position filename="compose/asc-compose.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2133">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2134">the #AscResult to finalize</doc>
            <type name="Result" c:type="AscResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="finalize_results"
              c:identifier="asc_compose_finalize_results">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2112">Perform final validation of generated data.
Calling this function is not necessary, unless the final check was explicitly
disabled using the %ASC_COMPOSE_FLAG_NO_FINAL_CHECK flag.</doc>
        <source-position filename="compose/asc-compose.h" line="185"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2114">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cainfo" c:identifier="asc_compose_get_cainfo">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="413">Get the CA file used to verify peers with, or %NULL for default.</doc>
        <source-position filename="compose/asc-compose.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="415">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_data_result_dir"
              c:identifier="asc_compose_get_data_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="442">Get the data result directory.</doc>
        <source-position filename="compose/asc-compose.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="444">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="asc_compose_get_flags">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="324">Get the flags controlling compose behavior.</doc>
        <source-position filename="compose/asc-compose.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="ComposeFlags" c:type="AscComposeFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="326">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="asc_compose_get_format">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="268">get the format type we are generating.</doc>
        <source-position filename="compose/asc-compose.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.FormatKind" c:type="AsFormatKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="270">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hints_result_dir"
              c:identifier="asc_compose_get_hints_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="529">Get hints report output directory.</doc>
        <source-position filename="compose/asc-compose.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="531">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_policy"
              c:identifier="asc_compose_get_icon_policy">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="380">Get the policy for how icons should be distributed to
any AppStream clients.</doc>
        <source-position filename="compose/asc-compose.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="387">an #AscIconPolicy</doc>
          <type name="IconPolicy" c:type="AscIconPolicy*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="382">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icons_result_dir"
              c:identifier="asc_compose_get_icons_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="471">Get the icon result directory.</doc>
        <source-position filename="compose/asc-compose.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="473">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locale_unit"
              c:identifier="asc_compose_get_locale_unit">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="668">Get the unit we use for locale processing</doc>
        <source-position filename="compose/asc-compose.h" line="176"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="674">The unit used for locale processing, or %NULL for default.</doc>
          <type name="Unit" c:type="AscUnit*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="670">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_screenshot_size"
              c:identifier="asc_compose_get_max_screenshot_size">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="594">Get the maximum size a screenshot video or image can have.
A size &lt; 0 may be returned for no limit, setting a limit of 0
will disable screenshots.</doc>
        <source-position filename="compose/asc-compose.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="gssize" c:type="gssize"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="596">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_baseurl"
              c:identifier="asc_compose_get_media_baseurl">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="295">Get the media base URL to be used for the generated data,
or %NULL if no media is cached.</doc>
        <source-position filename="compose/asc-compose.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="297">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_result_dir"
              c:identifier="asc_compose_get_media_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="500">Get the media result directory, that can be served on a webserver.</doc>
        <source-position filename="compose/asc-compose.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="502">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_origin" c:identifier="asc_compose_get_origin">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="238">Get the metadata origin field.</doc>
        <source-position filename="compose/asc-compose.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="240">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_prefix" c:identifier="asc_compose_get_prefix">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="205">Get the directory prefix used for processing.</doc>
        <source-position filename="compose/asc-compose.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="207">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_results" c:identifier="asc_compose_get_results">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="704">Get the results of the last processing run.</doc>
        <source-position filename="compose/asc-compose.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="710">The results</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Result"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="706">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_errors" c:identifier="asc_compose_has_errors">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="745">Check if the last run generated any errors (which will cause metadata to be ignored).</doc>
        <source-position filename="compose/asc-compose.h" line="181"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="751">%TRUE if we had errors.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="747">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_custom_allowed"
              c:identifier="asc_compose_remove_custom_allowed">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="558">Remove a key from the allowlist used to filter the `&lt;custom/&gt;` tag entries.</doc>
        <source-position filename="compose/asc-compose.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="560">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="key_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="561">the custom key to drop from the allowed list.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_flags" c:identifier="asc_compose_remove_flags">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="366">Remove compose flags.</doc>
        <source-position filename="compose/asc-compose.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="368">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="369">The compose flags to remove.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset" c:identifier="asc_compose_reset">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="147">Reset the results, units and run-specific settings so the
instance can be reused for another metadata generation run.</doc>
        <source-position filename="compose/asc-compose.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="149">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run" c:identifier="asc_compose_run" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="2145">Process the registered units and generate catalog metadata from
found components.</doc>
        <source-position filename="compose/asc-compose.h" line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.c"
               line="2154">The results, or %NULL on error</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Result"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2147">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="2148">a #GCancellable.</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cainfo" c:identifier="asc_compose_set_cainfo">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="426">Set a CA file holding one or more certificates to verify peers with
for download operations performed by this #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="428">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="cainfo" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="429">a valid file path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_check_metadata_early_func"
              c:identifier="asc_compose_set_check_metadata_early_func">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="625">Set an custom callback to be run when most of the metadata has been loaded,
but no expensive operations (like downloads or icon rendering) have been done yet.
This can be used to ignore unwanted components early on.

The callback function may be called from any thread, so it needs to ensure thread safety on its own.</doc>
        <source-position filename="compose/asc-compose.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="627">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="628">the #AscCheckMetainfoLoadResultFn function to be called</doc>
            <type name="CheckMetadataEarlyFn"
                  c:type="AscCheckMetadataEarlyFn"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="629">user data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data_result_dir"
              c:identifier="asc_compose_set_data_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="455">Set an output location where generated metadata should be saved.
If this is set to %NULL, no metadata will be saved.</doc>
        <source-position filename="compose/asc-compose.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="457">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="458">the metadata save location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_desktop_entry_l10n_func"
              c:identifier="asc_compose_set_desktop_entry_l10n_func"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="647">Set a custom desktop-entry field localization functions to be run for specialized
desktop-entry localization schemes such as used in Ubuntu.

The callback function may be called from any thread, so it needs to ensure thread safety on its own.</doc>
        <source-position filename="compose/asc-compose.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="649">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="650">the #AscTranslateDesktopTextFn function to be called</doc>
            <type name="TranslateDesktopTextFn"
                  c:type="AscTranslateDesktopTextFn"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="651">user data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_flags" c:identifier="asc_compose_set_flags">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="337">Set compose flags bitfield that controls the enabled features
for this #AscCompose.</doc>
        <source-position filename="compose/asc-compose.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="339">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="340">The compose flags bitfield.</doc>
            <type name="ComposeFlags" c:type="AscComposeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_format" c:identifier="asc_compose_set_format">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="281">Set the format kind of the catalog metadata that we should generate.</doc>
        <source-position filename="compose/asc-compose.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="283">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="284">The format, e.g. %AS_FORMAT_KIND_XML</doc>
            <type name="AppStream.FormatKind" c:type="AsFormatKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hints_result_dir"
              c:identifier="asc_compose_set_hints_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="542">Set an output location for HTML reports of issues generated
during a compose run.</doc>
        <source-position filename="compose/asc-compose.h" line="161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="544">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="545">the hints data directory.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_policy"
              c:identifier="asc_compose_set_icon_policy">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="396">Set an icon policy object, overriding the existing one.</doc>
        <source-position filename="compose/asc-compose.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="398">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="399">an #AscIconPolicy instance</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icons_result_dir"
              c:identifier="asc_compose_set_icons_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="484">Set an output location where plain icons for the processed metadata
are stored.</doc>
        <source-position filename="compose/asc-compose.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="486">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="487">the icon storage location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_locale_unit"
              c:identifier="asc_compose_set_locale_unit">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="683">Set a specific unit that is used for fetching locale information.
This may be useful in case a special language pack layout is used,
but is generally not necessary to be set explicitly, as locale
will be found in the unit where the metadata is by default.</doc>
        <source-position filename="compose/asc-compose.h" line="177"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="685">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="locale_unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="686">the unit used for locale processing.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_screenshot_size"
              c:identifier="asc_compose_set_max_screenshot_size">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="609">Set the maximum size a screenshot video or image can have.
A size &lt; 0 may be set to allow unlimited sizes, setting a limit of 0
will disable screenshot caching entirely.</doc>
        <source-position filename="compose/asc-compose.h" line="167"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="611">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="size_bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="612">maximum size of a screenshot image or video in bytes</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_baseurl"
              c:identifier="asc_compose_set_media_baseurl">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="309">Set the media base URL for the generated metadata. Can be %NULL if no media
should be cached and the original URLs should be kept.</doc>
        <source-position filename="compose/asc-compose.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="311">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="url"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="312">the media base URL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_media_result_dir"
              c:identifier="asc_compose_set_media_result_dir">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="513">Set an output location to store media (screenshots, icons, ...) that
will be served on a webserver via the URL set as media baseurl.</doc>
        <source-position filename="compose/asc-compose.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="515">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="516">the media storage location.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_origin" c:identifier="asc_compose_set_origin">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="251">Set the metadata origin field (e.g. "debian" or "flathub")</doc>
        <source-position filename="compose/asc-compose.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="253">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="origin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="254">the origin.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_prefix" c:identifier="asc_compose_set_prefix">
        <doc xml:space="preserve"
             filename="compose/asc-compose.c"
             line="218">Set the directory prefix the to-be-processed units are using.</doc>
        <source-position filename="compose/asc-compose.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compose" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="220">an #AscCompose instance.</doc>
            <type name="Compose" c:type="AscCompose*"/>
          </instance-parameter>
          <parameter name="prefix" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-compose.c"
                 line="221">a directory prefix, e.g. "/usr"</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ComposeClass"
            c:type="AscComposeClass"
            glib:is-gtype-struct-for="Compose">
      <source-position filename="compose/asc-compose.h" line="45"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-compose.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-compose.h" line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-compose.h" line="43"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-compose.h" line="44"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="ComposeError"
                 glib:type-name="AscComposeError"
                 glib:get-type="asc_compose_error_get_type"
                 c:type="AscComposeError"
                 glib:error-domain="AscComposeError">
      <doc xml:space="preserve"
           filename="compose/asc-globals.h"
           line="31">A metadata composition error.</doc>
      <member name="failed"
              value="0"
              c:identifier="ASC_COMPOSE_ERROR_FAILED"
              glib:nick="failed"
              glib:name="ASC_COMPOSE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="compose/asc-globals.h"
             line="33">Generic failure.</doc>
      </member>
      <function name="quark" c:identifier="asc_compose_error_quark">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="81">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="ComposeFlags"
              glib:type-name="AscComposeFlags"
              glib:get-type="asc_compose_flags_get_type"
              c:type="AscComposeFlags">
      <member name="none"
              value="0"
              c:identifier="ASC_COMPOSE_FLAG_NONE"
              glib:nick="none"
              glib:name="ASC_COMPOSE_FLAG_NONE">
      </member>
      <member name="use_threads"
              value="1"
              c:identifier="ASC_COMPOSE_FLAG_USE_THREADS"
              glib:nick="use-threads"
              glib:name="ASC_COMPOSE_FLAG_USE_THREADS">
      </member>
      <member name="allow_net"
              value="2"
              c:identifier="ASC_COMPOSE_FLAG_ALLOW_NET"
              glib:nick="allow-net"
              glib:name="ASC_COMPOSE_FLAG_ALLOW_NET">
      </member>
      <member name="validate"
              value="4"
              c:identifier="ASC_COMPOSE_FLAG_VALIDATE"
              glib:nick="validate"
              glib:name="ASC_COMPOSE_FLAG_VALIDATE">
      </member>
      <member name="store_screenshots"
              value="8"
              c:identifier="ASC_COMPOSE_FLAG_STORE_SCREENSHOTS"
              glib:nick="store-screenshots"
              glib:name="ASC_COMPOSE_FLAG_STORE_SCREENSHOTS">
      </member>
      <member name="allow_screencasts"
              value="16"
              c:identifier="ASC_COMPOSE_FLAG_ALLOW_SCREENCASTS"
              glib:nick="allow-screencasts"
              glib:name="ASC_COMPOSE_FLAG_ALLOW_SCREENCASTS">
      </member>
      <member name="process_fonts"
              value="32"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_FONTS"
              glib:nick="process-fonts"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_FONTS">
      </member>
      <member name="process_translations"
              value="64"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_TRANSLATIONS"
              glib:nick="process-translations"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_TRANSLATIONS">
      </member>
      <member name="ignore_icons"
              value="128"
              c:identifier="ASC_COMPOSE_FLAG_IGNORE_ICONS"
              glib:nick="ignore-icons"
              glib:name="ASC_COMPOSE_FLAG_IGNORE_ICONS">
      </member>
      <member name="process_unpaired_desktop"
              value="256"
              c:identifier="ASC_COMPOSE_FLAG_PROCESS_UNPAIRED_DESKTOP"
              glib:nick="process-unpaired-desktop"
              glib:name="ASC_COMPOSE_FLAG_PROCESS_UNPAIRED_DESKTOP">
      </member>
      <member name="propagate_custom"
              value="512"
              c:identifier="ASC_COMPOSE_FLAG_PROPAGATE_CUSTOM"
              glib:nick="propagate-custom"
              glib:name="ASC_COMPOSE_FLAG_PROPAGATE_CUSTOM">
      </member>
      <member name="propagate_artifacts"
              value="1024"
              c:identifier="ASC_COMPOSE_FLAG_PROPAGATE_ARTIFACTS"
              glib:nick="propagate-artifacts"
              glib:name="ASC_COMPOSE_FLAG_PROPAGATE_ARTIFACTS">
      </member>
      <member name="no_final_check"
              value="2048"
              c:identifier="ASC_COMPOSE_FLAG_NO_FINAL_CHECK"
              glib:nick="no-final-check"
              glib:name="ASC_COMPOSE_FLAG_NO_FINAL_CHECK">
      </member>
      <member name="no_partial_urls"
              value="4096"
              c:identifier="ASC_COMPOSE_FLAG_NO_PARTIAL_URLS"
              glib:nick="no-partial-urls"
              glib:name="ASC_COMPOSE_FLAG_NO_PARTIAL_URLS">
      </member>
    </bitfield>
    <class name="DirectoryUnit"
           c:symbol-prefix="directory_unit"
           c:type="AscDirectoryUnit"
           parent="Unit"
           glib:type-name="AscDirectoryUnit"
           glib:get-type="asc_directory_unit_get_type"
           glib:type-struct="DirectoryUnitClass">
      <source-position filename="compose/asc-directory-unit.h" line="42"/>
      <constructor name="new" c:identifier="asc_directory_unit_new">
        <doc xml:space="preserve"
             filename="compose/asc-directory-unit.c"
             line="273">Creates a new #AscDirectoryUnit.</doc>
        <source-position filename="compose/asc-directory-unit.h" line="44"/>
        <return-value transfer-ownership="full">
          <type name="DirectoryUnit" c:type="AscDirectoryUnit*"/>
        </return-value>
        <parameters>
          <parameter name="root_dir" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_root" c:identifier="asc_directory_unit_get_root">
        <doc xml:space="preserve"
             filename="compose/asc-directory-unit.c"
             line="244">Get the root directory path for this unit.</doc>
        <source-position filename="compose/asc-directory-unit.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="dirunit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-directory-unit.c"
                 line="246">an #AscDirectoryUnit instance.</doc>
            <type name="DirectoryUnit" c:type="AscDirectoryUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_root" c:identifier="asc_directory_unit_set_root">
        <doc xml:space="preserve"
             filename="compose/asc-directory-unit.c"
             line="257">Sets the root directory path for this unit.</doc>
        <source-position filename="compose/asc-directory-unit.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dirunit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-directory-unit.c"
                 line="259">an #AscDirectoryUnit instance.</doc>
            <type name="DirectoryUnit" c:type="AscDirectoryUnit*"/>
          </instance-parameter>
          <parameter name="root_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-directory-unit.c"
                 line="260">Absolute directory path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Unit" c:type="AscUnit"/>
      </field>
    </class>
    <record name="DirectoryUnitClass"
            c:type="AscDirectoryUnitClass"
            glib:is-gtype-struct-for="DirectoryUnit">
      <source-position filename="compose/asc-directory-unit.h" line="42"/>
      <field name="parent_class">
        <type name="UnitClass" c:type="AscUnitClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-directory-unit.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-directory-unit.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-directory-unit.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-directory-unit.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="Hint"
           c:symbol-prefix="hint"
           c:type="AscHint"
           parent="GObject.Object"
           glib:type-name="AscHint"
           glib:get-type="asc_hint_get_type"
           glib:type-struct="HintClass">
      <source-position filename="compose/asc-hint.h" line="41"/>
      <constructor name="new" c:identifier="asc_hint_new">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="279">Creates a new #AscHint.</doc>
        <source-position filename="compose/asc-hint.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Hint" c:type="AscHint*"/>
        </return-value>
      </constructor>
      <constructor name="new_for_tag"
                   c:identifier="asc_hint_new_for_tag"
                   throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="292">Creates a new #AscHint with the given tag. If the selected tag was not registered+
with the global tag registry, %NULL is returned and an error is set.</doc>
        <source-position filename="compose/asc-hint.h" line="44"/>
        <return-value transfer-ownership="full">
          <type name="Hint" c:type="AscHint*"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="294">The tag ID to construct this hint for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_explanation_var"
              c:identifier="asc_hint_add_explanation_var">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="181">Add a replacement variable for the explanation text.</doc>
        <source-position filename="compose/asc-hint.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="183">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
          <parameter name="var_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="184">Name of the variable to be replaced.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="185">Replacement for the variable name.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="format_explanation"
              c:identifier="asc_hint_format_explanation">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="226">Formats the explanation template to return a human-redable issue hint
explanation, with all placeholder variables replaced.</doc>
        <source-position filename="compose/asc-hint.h" line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="233">Explanation text for this hint, with variables replaced.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="228">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_explanation_template"
              c:identifier="asc_hint_get_explanation_template">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="126">Gets the explanation template for this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="128">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_explanation_vars_list"
              c:identifier="asc_hint_get_explanation_vars_list">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="209">Returns a list with the flattened key/value pairs for this hint.
Values are located in uneven list entries, following their keys in even list entries.</doc>
        <source-position filename="compose/asc-hint.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="216">A flattened #GPtrArray with the key/value pairs.</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="211">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_severity" c:identifier="asc_hint_get_severity">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="100">Gets the issue severity of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="102">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tag" c:identifier="asc_hint_get_tag">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="73">Gets the unique tag for the type of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="75">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_error" c:identifier="asc_hint_is_error">
        <source-position filename="compose/asc-hint.h" line="55"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="156">%TRUE if this hint describes an error.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="154">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="asc_hint_is_valid">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="165">Check if this hint is valid (it requires at least a tag and a severity
in order to be considered valid).</doc>
        <source-position filename="compose/asc-hint.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-hint.c"
               line="172">%TRUE if this hint is valid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="167">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_explanation_template"
              c:identifier="asc_hint_set_explanation_template">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="139">Sets the explanation template for this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="141">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
          <parameter name="explanation_tmpl" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_severity" c:identifier="asc_hint_set_severity">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="113">Sets the issue severity of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="115">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
          <parameter name="severity" transfer-ownership="none">
            <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tag" c:identifier="asc_hint_set_tag">
        <doc xml:space="preserve"
             filename="compose/asc-hint.c"
             line="86">Sets the unique tag for the type of this hint.</doc>
        <source-position filename="compose/asc-hint.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-hint.c"
                 line="88">an #AscHint instance.</doc>
            <type name="Hint" c:type="AscHint*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="HintClass"
            c:type="AscHintClass"
            glib:is-gtype-struct-for="Hint">
      <source-position filename="compose/asc-hint.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-hint.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-hint.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-hint.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-hint.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="IconPolicy"
           c:symbol-prefix="icon_policy"
           c:type="AscIconPolicy"
           parent="GObject.Object"
           glib:type-name="AscIconPolicy"
           glib:get-type="asc_icon_policy_get_type"
           glib:type-struct="IconPolicyClass">
      <source-position filename="compose/asc-icon-policy.h" line="41"/>
      <constructor name="new" c:identifier="asc_icon_policy_new">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="407">Creates a new #AscIconPolicy.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="72"/>
        <return-value transfer-ownership="full">
          <type name="IconPolicy" c:type="AscIconPolicy*"/>
        </return-value>
      </constructor>
      <method name="from_string"
              c:identifier="asc_icon_policy_from_string"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="313">Loads the icon policy from a textual representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="315">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
          <parameter name="serialized_policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="316">A policy string as returned by %asc_icon_policy_to_string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_policy" c:identifier="asc_icon_policy_set_policy">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="159">Sets a designated state for an icon of the given size.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="161">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
          <parameter name="icon_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="162">the size of the icon to set policy for (e.g. 64 for 64x64px icons)</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="icon_scale" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="163">the icon scale factor, e.g. 1</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="164">the designated #AscIconState</doc>
            <type name="IconState" c:type="AscIconState"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="asc_icon_policy_to_string">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="275">Converts the current icon policy into a textual representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="281">The icon policy serialized into a string. Free with g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="277">an #AscIconPolicy instance.</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="IconPolicyClass"
            c:type="AscIconPolicyClass"
            glib:is-gtype-struct-for="IconPolicy">
      <source-position filename="compose/asc-icon-policy.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-icon-policy.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-icon-policy.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-icon-policy.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-icon-policy.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="IconPolicyIter" c:type="AscIconPolicyIter">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="40">A #AscIconPolicyIter structure represents an iterator that can be used
to iterate over the icon sizes / policy entries of an #AscIconPolicy.
#AscIconPolicyIter structures are typically allocated on the stack and
then initialized with asc_icon_policy_iter_init().</doc>
      <source-position filename="compose/asc-icon-policy.h" line="51"/>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy5" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy6" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="init" c:identifier="asc_icon_policy_iter_init">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="201">Initializes a policy iterator for the policy entry list and associates it
it with @ipolicy.
The #AscIconPolicyIter structure is typically allocated on the stack
and does not need to be freed explicitly.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="203">an uninitialized #AscIconPolicyIter</doc>
            <type name="IconPolicyIter" c:type="AscIconPolicyIter*"/>
          </instance-parameter>
          <parameter name="ipolicy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="204">an #AscIconPolicy</doc>
            <type name="IconPolicy" c:type="AscIconPolicy*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="asc_icon_policy_iter_next">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="223">Returns the current icon policy entry and advances the iterator.
Example:
|[&lt;!-- language="C" --&gt;
AscIconPolicyIter iter;
guint icon_size;
guint icon_scale;
AscIconState istate;

asc_icon_policy_iter_init (&amp;iter, ipolicy);
while (asc_icon_policy_iter_next (&amp;iter, &amp;icon_size, &amp;icon_scale, &amp;istate)) {
    // do something with the icon entry data
}
]|</doc>
        <source-position filename="compose/asc-icon-policy.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="244">%FALSE if the last entry has been reached.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="225">an initialized #AscIconPolicyIter</doc>
            <type name="IconPolicyIter" c:type="AscIconPolicyIter*"/>
          </instance-parameter>
          <parameter name="size"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="226">Destination of the returned icon size</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="scale"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="227">Destination of the returned icon scale factor</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="state"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="228">Destination of the returned designated icon state.</doc>
            <type name="IconState" c:type="AscIconState*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="IconState"
                 glib:type-name="AscIconState"
                 glib:get-type="asc_icon_state_get_type"
                 c:type="AscIconState">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.h"
           line="53">Designated state for an icon of a given size.</doc>
      <member name="ignored"
              value="0"
              c:identifier="ASC_ICON_STATE_IGNORED"
              glib:nick="ignored"
              glib:name="ASC_ICON_STATE_IGNORED">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="55">Ignore icons of this size.</doc>
      </member>
      <member name="cached_remote"
              value="1"
              c:identifier="ASC_ICON_STATE_CACHED_REMOTE"
              glib:nick="cached-remote"
              glib:name="ASC_ICON_STATE_CACHED_REMOTE">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="56">Create cache for the icon, and provide remote link as well.</doc>
      </member>
      <member name="cached_only"
              value="2"
              c:identifier="ASC_ICON_STATE_CACHED_ONLY"
              glib:nick="cached-only"
              glib:name="ASC_ICON_STATE_CACHED_ONLY">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="57">Set if the icon should be stored in an icon tarball and be cached locally.</doc>
      </member>
      <member name="remote_only"
              value="3"
              c:identifier="ASC_ICON_STATE_REMOTE_ONLY"
              glib:nick="remote-only"
              glib:name="ASC_ICON_STATE_REMOTE_ONLY">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.h"
             line="58">Set if this icon should be stored remotely and fetched on demand.</doc>
      </member>
      <function name="from_string" c:identifier="asc_icon_state_from_string">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="138">Converts the text representation to an enumerated value.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="144">a #AscIconState</doc>
          <type name="IconState" c:type="AscIconState"/>
        </return-value>
        <parameters>
          <parameter name="state_str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="140">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string" c:identifier="asc_icon_state_to_string">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="117">Converts the enumerated value to an text representation.</doc>
        <source-position filename="compose/asc-icon-policy.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="123">string version of @istate</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="istate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-icon-policy.c"
                 line="119">the #AscIconState.</doc>
            <type name="IconState" c:type="AscIconState"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="Image"
           c:symbol-prefix="image"
           c:type="AscImage"
           parent="GObject.Object"
           glib:type-name="AscImage"
           glib:get-type="asc_image_get_type"
           glib:type-struct="ImageClass">
      <source-position filename="compose/asc-image.h" line="33"/>
      <constructor name="new" c:identifier="asc_image_new">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="179">Creates a new #AscImage.</doc>
        <source-position filename="compose/asc-image.h" line="125"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="AscImage*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_data"
                   c:identifier="asc_image_new_from_data"
                   throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="421">Creates a new #AscImage from data in memory.</doc>
        <source-position filename="compose/asc-image.h" line="130"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="AscImage*"/>
        </return-value>
        <parameters>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="423">Data to load.</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="424">Length of the data to load.</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="dest_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="425">The size of the constructed pixbuf, or 0 for the native size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="compressed" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="427">%TRUE if passed data is gzip-compressed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="426">a #AscImageLoadFlags, e.g. %ASC_IMAGE_LOAD_FLAG_NONE</doc>
            <type name="ImageLoadFlags" c:type="AscImageLoadFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="asc_image_new_from_file"
                   throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="397">Creates a new #AscImage from a file on the filesystem.</doc>
        <source-position filename="compose/asc-image.h" line="126"/>
        <return-value transfer-ownership="full">
          <type name="Image" c:type="AscImage*"/>
        </return-value>
        <parameters>
          <parameter name="fname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="399">Name of the file to load.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="400">The size of the constructed pixbuf, or 0 for the native size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="401">a #AscImageLoadFlags, e.g. %ASC_IMAGE_LOAD_FLAG_NONE</doc>
            <type name="ImageLoadFlags" c:type="AscImageLoadFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="supported_format_names"
                c:identifier="asc_image_supported_format_names">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="255">Get a set of image format names we can currently read
(via GdkPixbuf).</doc>
        <source-position filename="compose/asc-image.h" line="123"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="261">A hash set of format names.</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="gpointer" c:type="gpointer"/>
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
      </function>
      <method name="get_height" c:identifier="asc_image_get_height">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="684">Gets the image height.</doc>
        <source-position filename="compose/asc-image.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="686">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf" c:identifier="asc_image_get_pixbuf">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="635">Gets the image pixbuf if set.</doc>
        <source-position filename="compose/asc-image.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="641">the #GdkPixbuf, or %NULL</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="637">a #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="asc_image_get_width">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="671">Gets the image width.</doc>
        <source-position filename="compose/asc-image.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="673">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_filename"
              c:identifier="asc_image_load_filename"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="545">Reads an image from a file.</doc>
        <source-position filename="compose/asc-image.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="556">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="547">a #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="548">filename to read from</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="549">The size of the constructed pixbuf, or 0 for the native size</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="src_size_min" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="550">The smallest source size allowed, or 0 for none</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="551">a #AscImageLoadFlags, e.g. %ASC_IMAGE_LOAD_FLAG_NONE</doc>
            <type name="ImageLoadFlags" c:type="AscImageLoadFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_filename"
              c:identifier="asc_image_save_filename"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="860">Saves the image to a file.</doc>
        <source-position filename="compose/asc-image.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="871">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="862">a #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="863">filename to write to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="864">target width, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="865">target height, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="866">some #AscImageSaveFlags values, e.g. %ASC_IMAGE_SAVE_FLAG_PAD_16_9</doc>
            <type name="ImageSaveFlags" c:type="AscImageSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_pixbuf" c:identifier="asc_image_save_pixbuf">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="776">Resamples a pixbuf to a specific size.</doc>
        <source-position filename="compose/asc-image.h" line="144"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="785">A #GdkPixbuf of the specified size</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="778">a #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="779">target width, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="780">target height, or 0 for default</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="781">some #AscImageSaveFlags values, e.g. %ASC_IMAGE_SAVE_FLAG_PAD_16_9</doc>
            <type name="ImageSaveFlags" c:type="AscImageSaveFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="scale" c:identifier="asc_image_scale">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="697">Scale the image to the given size.</doc>
        <source-position filename="compose/asc-image.h" line="161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="699">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="new_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="700">The new width.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="new_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="701">the new height.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="scale_to_fit" c:identifier="asc_image_scale_to_fit">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="759">Scale the image to fir in a square with the given edge length,
and keep its aspect ratio.</doc>
        <source-position filename="compose/asc-image.h" line="165"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="761">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="762">the maximum edge length.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="scale_to_height" c:identifier="asc_image_scale_to_height">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="740">Scale the image to the given height, preserving
its aspect ratio.</doc>
        <source-position filename="compose/asc-image.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="742">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="new_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="743">the new height.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="scale_to_width" c:identifier="asc_image_scale_to_width">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="721">Scale the image to the given width, preserving
its aspect ratio.</doc>
        <source-position filename="compose/asc-image.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="723">an #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="new_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="724">The new width.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixbuf" c:identifier="asc_image_set_pixbuf">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="651">Sets the image pixbuf.</doc>
        <source-position filename="compose/asc-image.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="653">a #AscImage instance.</doc>
            <type name="Image" c:type="AscImage*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="654">the #GdkPixbuf, or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="ImageClass"
            c:type="AscImageClass"
            glib:is-gtype-struct-for="Image">
      <source-position filename="compose/asc-image.h" line="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="ImageError"
                 glib:type-name="AscImageError"
                 glib:get-type="asc_image_error_get_type"
                 c:type="AscImageError"
                 glib:error-domain="AscImageError">
      <doc xml:space="preserve"
           filename="compose/asc-image.h"
           line="101">An image processing error.</doc>
      <member name="failed"
              value="0"
              c:identifier="ASC_IMAGE_ERROR_FAILED"
              glib:nick="failed"
              glib:name="ASC_IMAGE_ERROR_FAILED">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="103">Generic failure.</doc>
      </member>
      <member name="unsupported"
              value="1"
              c:identifier="ASC_IMAGE_ERROR_UNSUPPORTED"
              glib:nick="unsupported"
              glib:name="ASC_IMAGE_ERROR_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="104">The graphic type is not supported.</doc>
      </member>
      <function name="quark" c:identifier="asc_image_error_quark">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="52">An error quark.</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <enumeration name="ImageFormat"
                 glib:type-name="AscImageFormat"
                 glib:get-type="asc_image_format_get_type"
                 c:type="AscImageFormat">
      <doc xml:space="preserve"
           filename="compose/asc-image.h"
           line="73">File format of an image.</doc>
      <member name="unknown"
              value="0"
              c:identifier="ASC_IMAGE_FORMAT_UNKNOWN"
              glib:nick="unknown"
              glib:name="ASC_IMAGE_FORMAT_UNKNOWN">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="75">Unknown image format.</doc>
      </member>
      <member name="png"
              value="1"
              c:identifier="ASC_IMAGE_FORMAT_PNG"
              glib:nick="png"
              glib:name="ASC_IMAGE_FORMAT_PNG">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="76">PNG format</doc>
      </member>
      <member name="jpeg"
              value="2"
              c:identifier="ASC_IMAGE_FORMAT_JPEG"
              glib:nick="jpeg"
              glib:name="ASC_IMAGE_FORMAT_JPEG">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="77">JPEG format</doc>
      </member>
      <member name="gif"
              value="3"
              c:identifier="ASC_IMAGE_FORMAT_GIF"
              glib:nick="gif"
              glib:name="ASC_IMAGE_FORMAT_GIF">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="78">GIF format</doc>
      </member>
      <member name="svg"
              value="4"
              c:identifier="ASC_IMAGE_FORMAT_SVG"
              glib:nick="svg"
              glib:name="ASC_IMAGE_FORMAT_SVG">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="79">SVG format</doc>
      </member>
      <member name="svgz"
              value="5"
              c:identifier="ASC_IMAGE_FORMAT_SVGZ"
              glib:nick="svgz"
              glib:name="ASC_IMAGE_FORMAT_SVGZ">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="80">Compressed SVG format</doc>
      </member>
      <member name="webp"
              value="6"
              c:identifier="ASC_IMAGE_FORMAT_WEBP"
              glib:nick="webp"
              glib:name="ASC_IMAGE_FORMAT_WEBP">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="81">WebP format</doc>
      </member>
      <member name="avif"
              value="7"
              c:identifier="ASC_IMAGE_FORMAT_AVIF"
              glib:nick="avif"
              glib:name="ASC_IMAGE_FORMAT_AVIF">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="82">AVIF format</doc>
      </member>
      <member name="xpm"
              value="8"
              c:identifier="ASC_IMAGE_FORMAT_XPM"
              glib:nick="xpm"
              glib:name="ASC_IMAGE_FORMAT_XPM">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="83">XPM format</doc>
      </member>
      <function name="from_filename"
                c:identifier="asc_image_format_from_filename">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="123">Returns the image format type based on the given file's filename.</doc>
        <source-position filename="compose/asc-image.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="129">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </return-value>
        <parameters>
          <parameter name="fname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="125">the filename.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="from_string" c:identifier="asc_image_format_from_string">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="93">Converts the text representation to an enumerated value.</doc>
        <source-position filename="compose/asc-image.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="99">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="95">the string.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="to_string" c:identifier="asc_image_format_to_string">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="63">Converts the enumerated value to an text representation.</doc>
        <source-position filename="compose/asc-image.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="69">string version of @format</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-image.c"
                 line="65">the %AscImageFormat.</doc>
            <type name="ImageFormat" c:type="AscImageFormat"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <bitfield name="ImageLoadFlags"
              glib:type-name="AscImageLoadFlags"
              glib:get-type="asc_image_load_flags_get_type"
              c:type="AscImageLoadFlags">
      <doc xml:space="preserve"
           filename="compose/asc-image.h"
           line="55">The flags used for loading images.</doc>
      <member name="none"
              value="0"
              c:identifier="ASC_IMAGE_LOAD_FLAG_NONE"
              glib:nick="none"
              glib:name="ASC_IMAGE_LOAD_FLAG_NONE">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="57">No special flags set</doc>
      </member>
      <member name="sharpen"
              value="1"
              c:identifier="ASC_IMAGE_LOAD_FLAG_SHARPEN"
              glib:nick="sharpen"
              glib:name="ASC_IMAGE_LOAD_FLAG_SHARPEN">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="58">Sharpen the resulting image</doc>
      </member>
      <member name="allow_unsupported"
              value="2"
              c:identifier="ASC_IMAGE_LOAD_FLAG_ALLOW_UNSUPPORTED"
              glib:nick="allow-unsupported"
              glib:name="ASC_IMAGE_LOAD_FLAG_ALLOW_UNSUPPORTED">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="59">Allow loading of unsupported image types.</doc>
      </member>
      <member name="always_resize"
              value="4"
              c:identifier="ASC_IMAGE_LOAD_FLAG_ALWAYS_RESIZE"
              glib:nick="always-resize"
              glib:name="ASC_IMAGE_LOAD_FLAG_ALWAYS_RESIZE">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="60">Always resize the source image to the perfect size</doc>
      </member>
    </bitfield>
    <bitfield name="ImageSaveFlags"
              glib:type-name="AscImageSaveFlags"
              glib:get-type="asc_image_save_flags_get_type"
              c:type="AscImageSaveFlags">
      <doc xml:space="preserve"
           filename="compose/asc-image.h"
           line="35">The flags used for saving images.</doc>
      <member name="none"
              value="0"
              c:identifier="ASC_IMAGE_SAVE_FLAG_NONE"
              glib:nick="none"
              glib:name="ASC_IMAGE_SAVE_FLAG_NONE">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="37">No special flags set</doc>
      </member>
      <member name="optimize"
              value="1"
              c:identifier="ASC_IMAGE_SAVE_FLAG_OPTIMIZE"
              glib:nick="optimize"
              glib:name="ASC_IMAGE_SAVE_FLAG_OPTIMIZE">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="38">Optimize generated PNG for size</doc>
      </member>
      <member name="pad_16_9"
              value="2"
              c:identifier="ASC_IMAGE_SAVE_FLAG_PAD_16_9"
              glib:nick="pad-16-9"
              glib:name="ASC_IMAGE_SAVE_FLAG_PAD_16_9">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="39">Pad with alpha to 16:9 aspect</doc>
      </member>
      <member name="sharpen"
              value="4"
              c:identifier="ASC_IMAGE_SAVE_FLAG_SHARPEN"
              glib:nick="sharpen"
              glib:name="ASC_IMAGE_SAVE_FLAG_SHARPEN">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="40">Sharpen the image to clarify detail</doc>
      </member>
      <member name="blur"
              value="8"
              c:identifier="ASC_IMAGE_SAVE_FLAG_BLUR"
              glib:nick="blur"
              glib:name="ASC_IMAGE_SAVE_FLAG_BLUR">
        <doc xml:space="preserve"
             filename="compose/asc-image.h"
             line="41">Blur the image to clear detail</doc>
      </member>
    </bitfield>
    <class name="Result"
           c:symbol-prefix="result"
           c:type="AscResult"
           parent="GObject.Object"
           glib:type-name="AscResult"
           glib:get-type="asc_result_get_type"
           glib:type-struct="ResultClass">
      <source-position filename="compose/asc-result.h" line="41"/>
      <constructor name="new" c:identifier="asc_result_new">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="817">Creates a new #AscResult.</doc>
        <source-position filename="compose/asc-result.h" line="43"/>
        <return-value transfer-ownership="full">
          <type name="Result" c:type="AscResult*"/>
        </return-value>
      </constructor>
      <method name="add_component"
              c:identifier="asc_result_add_component"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="445">Add component to the results set.</doc>
        <source-position filename="compose/asc-result.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="454">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="447">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="448">The #AsComponent to add.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="bytes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="449">Source data used to generate the GCID hash, or %NULL if nonexistent.</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_component_with_string"
              c:identifier="asc_result_add_component_with_string"
              throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="493">Add component to the results set, using string data.</doc>
        <source-position filename="compose/asc-result.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="502">%TRUE on success.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="495">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="496">The #AsComponent to add.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="497">Source data used to generate the GCID hash, or %NULL if nonexistent.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint"
              c:identifier="asc_result_add_hint"
              shadowed-by="add_hint_v"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="736">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="746">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="738">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="739">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="740">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="741">First key to add a value for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="742">replacement keys and values for the issue explanation, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_by_cid"
              c:identifier="asc_result_add_hint_by_cid"
              shadowed-by="add_hint_by_cid_v"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="682">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="692">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="684">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="685">The component-ID of the affected #AsComponent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="686">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="key1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="687">First key to add a value for, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="688">replacement keys and values for the issue explanation, terminated by %NULL</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_by_cid_v"
              c:identifier="asc_result_add_hint_by_cid_v"
              shadows="add_hint_by_cid">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="710">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="719">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="712">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="component_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="713">The component-ID of the affected #AsComponent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="714">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="kv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="715">List of key-value pairs for replacement variables.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_simple"
              c:identifier="asc_result_add_hint_simple"
              introspectable="0">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="767">Add an issue hint which does not have any variables to replace in its
explanation text for a component.</doc>
        <source-position filename="compose/asc-result.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="776">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="769">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="770">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="771">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_hint_v"
              c:identifier="asc_result_add_hint_v"
              shadows="add_hint">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="788">Add an issue hint for a component.</doc>
        <source-position filename="compose/asc-result.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="797">%TRUE if the added hint did not cause the component to be invalidated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="790">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="791">The affected #AsComponent</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="792">AppStream Compose Issue hint tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="kv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="793">List of key-value pairs for replacement variables.</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="components_count"
              c:identifier="asc_result_components_count">
        <source-position filename="compose/asc-result.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="110">The amount of components found for this unit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="108">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_components"
              c:identifier="asc_result_fetch_components">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="227">Gets all components this #AsResult instance contains.</doc>
        <source-position filename="compose/asc-result.h" line="57"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="233">An array of #AsComponent</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="AppStream.Component"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="229">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fetch_hints_all" c:identifier="asc_result_fetch_hints_all">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="267">Get a list of all hints for all components that are registered with this result.</doc>
        <source-position filename="compose/asc-result.h" line="59"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="273">An array of #AscHint</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Hint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="269">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="gcid_for_cid" c:identifier="asc_result_gcid_for_cid">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="390">Retrieve the global component-ID string for the given component-ID,
as long as component with the given ID is registered with this #AscResult.
Otherwise, %NULL is returned.</doc>
        <source-position filename="compose/asc-result.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="392">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="393">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="gcid_for_component"
              c:identifier="asc_result_gcid_for_component">
        <source-position filename="compose/asc-result.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bundle_id" c:identifier="asc_result_get_bundle_id">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="182">Gets the ID name of the bundle (a package / Flatpak / any entity containing metadata)
that these these results are generated for.</doc>
        <source-position filename="compose/asc-result.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="184">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_kind" c:identifier="asc_result_get_bundle_kind">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="156">Gets the bundle kind these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="158">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_component" c:identifier="asc_result_get_component">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="211">Gets the component by its component-id-</doc>
        <source-position filename="compose/asc-result.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="218">An #AsComponent</doc>
          <type name="AppStream.Component" c:type="AsComponent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="213">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="214">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_component_gcids"
              c:identifier="asc_result_get_component_gcids">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="421">Retrieve a list of all global component-IDs that this result knows of.</doc>
        <source-position filename="compose/asc-result.h" line="68"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="427">An array of global component IDs. Free with %g_free</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="423">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_component_ids_with_hints"
              c:identifier="asc_result_get_component_ids_with_hints">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="295">Gets list of component-IDs which do have issue hints associated with them.</doc>
        <source-position filename="compose/asc-result.h" line="60"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="301">An array of component-IDs. Free container with %g_free</doc>
          <array c:type="const gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="297">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hints" c:identifier="asc_result_get_hints">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="251">Gets hints for a component with the given component-id.</doc>
        <source-position filename="compose/asc-result.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="258">An array of #AscHint or %NULL</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="Hint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="253">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="254">Component ID to look for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_hint" c:identifier="asc_result_has_hint">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="567">Test if a hint tag is associated with a given component in this result.</doc>
        <source-position filename="compose/asc-result.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="575">%TRUE if a hint with this tag exists for the selected component.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="569">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="570">the #AsComponent to check</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="571">the hint tag to check for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hints_count" c:identifier="asc_result_hints_count">
        <source-position filename="compose/asc-result.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="123">The amount of hints emitted for this unit.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="121">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ignored" c:identifier="asc_result_is_ignored">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="139">Check if an #AsComponent was set to be ignored in this result
(usually due to errors).</doc>
        <source-position filename="compose/asc-result.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="147">%TRUE if the component is ignored.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="141">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="142">the component to check for.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_component"
              c:identifier="asc_result_remove_component">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="538">Remove a component from the results set.</doc>
        <source-position filename="compose/asc-result.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="545">%TRUE if the component was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="540">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="541">The #AsComponent to remove.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_component_by_id"
              c:identifier="asc_result_remove_component_by_id">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="596">Remove a component from the results set.</doc>
        <source-position filename="compose/asc-result.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="603">%TRUE if the component was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="598">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="599">a component-ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_component_full"
              c:identifier="asc_result_remove_component_full">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="514">Remove a component from the results set.</doc>
        <source-position filename="compose/asc-result.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="522">%TRUE if the component was found and removed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="516">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="517">The #AsComponent to remove.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="remove_gcid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="518">%TRUE if global component ID should be unregistered as well.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_hints_for_cid"
              c:identifier="asc_result_remove_hints_for_cid">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="553">Remove all hints that we have associated with the selected component-ID.</doc>
        <source-position filename="compose/asc-result.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="555">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="556">The component ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_id" c:identifier="asc_result_set_bundle_id">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="196">Sets the name of the bundle these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="198">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="199">The new ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_kind" c:identifier="asc_result_set_bundle_kind">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="169">Sets the kind of the bundle these results are for.</doc>
        <source-position filename="compose/asc-result.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="171">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="unit_ignored" c:identifier="asc_result_unit_ignored">
        <source-position filename="compose/asc-result.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="97">%TRUE if this result means the analyzed unit was ignored entirely.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="95">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="update_component_gcid"
              c:identifier="asc_result_update_component_gcid">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="310">Update the global component ID for the given component.</doc>
        <source-position filename="compose/asc-result.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="318">%TRUE if the component existed and was updated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="312">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="313">The #AsComponent to edit.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="bytes"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="314">The data to include in the global component ID, or %NULL</doc>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_component_gcid_with_string"
              c:identifier="asc_result_update_component_gcid_with_string">
        <doc xml:space="preserve"
             filename="compose/asc-result.c"
             line="370">Update the global component ID for the given component.
This is a convenience method for %asc_result_update_component_gcid</doc>
        <source-position filename="compose/asc-result.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-result.c"
               line="379">%TRUE if the component existed and was updated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="372">an #AscResult instance.</doc>
            <type name="Result" c:type="AscResult*"/>
          </instance-parameter>
          <parameter name="cpt" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="373">The #AsComponent to edit.</doc>
            <type name="AppStream.Component" c:type="AsComponent*"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-result.c"
                 line="374">The data as string to include in the global component ID, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ResultClass"
            c:type="AscResultClass"
            glib:is-gtype-struct-for="Result">
      <source-position filename="compose/asc-result.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-result.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-result.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-result.h" line="39"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-result.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TranslateDesktopTextFn"
              c:type="AscTranslateDesktopTextFn"
              introspectable="0">
      <doc xml:space="preserve"
           filename="compose/asc-compose.h"
           line="103">Function which is called while parsing a desktop-entry file to allow external
translations of string values. This is used in e.g. the Ubuntu distribution.

The return value must contain a list of strings with the locale name in even indices,
and the text translated to the preceding locale in the following odd indices.</doc>
      <source-position filename="compose/asc-compose.h" line="117"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="compose/asc-compose.h"
             line="115">A new #GPtrArray containing the translation mapping.</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="de" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="105">A pointer to the desktop-entry data we are reading.</doc>
          <type name="GLib.KeyFile" c:type="const GKeyFile*"/>
        </parameter>
        <parameter name="text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="106">The string to translate.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="compose/asc-compose.h"
               line="107">Additional data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="Unit"
           c:symbol-prefix="unit"
           c:type="AscUnit"
           parent="GObject.Object"
           glib:type-name="AscUnit"
           glib:get-type="asc_unit_get_type"
           glib:type-struct="UnitClass">
      <source-position filename="compose/asc-unit.h" line="49"/>
      <constructor name="new" c:identifier="asc_unit_new">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="365">Creates a new #AscUnit.</doc>
        <source-position filename="compose/asc-unit.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="Unit" c:type="AscUnit*"/>
        </return-value>
      </constructor>
      <virtual-method name="close" invoker="close">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="251">Close this unit, possibly freeing its resources. Calls to read_data() or
get_contents() may not produce results until open() is called again.</doc>
        <source-position filename="compose/asc-unit.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="253">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="dir_exists" invoker="dir_exists">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="298">Returns %TRUE if the directory exists and files in it are readable.</doc>
        <source-position filename="compose/asc-unit.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="300">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="dirname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="301">The directory name to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="file_exists" invoker="file_exists">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="269">Returns %TRUE if the filename exists and is readable using %asc_unit_read_data.</doc>
        <source-position filename="compose/asc-unit.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="271">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="272">The filename to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="open" invoker="open" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="232">Open this unit, populating its content listing.</doc>
        <source-position filename="compose/asc-unit.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="234">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read_data" invoker="read_data" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="316">Read the contents of the selected file into memory and return them.</doc>
        <source-position filename="compose/asc-unit.h" line="42"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="318">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="319">The file to read data for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_relevant_path"
              c:identifier="asc_unit_add_relevant_path">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="210">Add a path to the list of relevant directories.
A unit may only read data in paths that were previously
registered as relevant.</doc>
        <source-position filename="compose/asc-unit.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="212">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="213">path to be considered relevant</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="asc_unit_close">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="251">Close this unit, possibly freeing its resources. Calls to read_data() or
get_contents() may not produce results until open() is called again.</doc>
        <source-position filename="compose/asc-unit.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="253">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="dir_exists" c:identifier="asc_unit_dir_exists">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="298">Returns %TRUE if the directory exists and files in it are readable.</doc>
        <source-position filename="compose/asc-unit.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="300">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="dirname" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="301">The directory name to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="file_exists" c:identifier="asc_unit_file_exists">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="269">Returns %TRUE if the filename exists and is readable using %asc_unit_read_data.</doc>
        <source-position filename="compose/asc-unit.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="271">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="272">The filename to check.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bundle_id" c:identifier="asc_unit_get_bundle_id">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="102">Gets the ID name of the bundle (a package / Flatpak / any entity containing metadata)
that this unit represents.</doc>
        <source-position filename="compose/asc-unit.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="104">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_id_safe"
              c:identifier="asc_unit_get_bundle_id_safe">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="116">Gets the ID name of the bundle, normalized to be safe to use
in filenames. This may *not* be the same name as set via asc_unit_get_bundle_id()</doc>
        <source-position filename="compose/asc-unit.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="118">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bundle_kind" c:identifier="asc_unit_get_bundle_kind">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="76">Gets the bundle kind of this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="78">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_contents" c:identifier="asc_unit_get_contents">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="163">Get a list of all files contained by this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-unit.c"
               line="169">A file listing</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="165">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_relevant_paths"
              c:identifier="asc_unit_get_relevant_paths">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="195">Get a list of paths that are relevant for data processing.</doc>
        <source-position filename="compose/asc-unit.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-unit.c"
               line="201">A list of paths</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="utf8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="197">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_data" c:identifier="asc_unit_get_user_data">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="336">Get user-defined data. This is a helper
function for bindings.</doc>
        <source-position filename="compose/asc-unit.h" line="73"/>
        <return-value transfer-ownership="none" nullable="1">
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="338">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="asc_unit_open" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="232">Open this unit, populating its content listing.</doc>
        <source-position filename="compose/asc-unit.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="234">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read_data" c:identifier="asc_unit_read_data" throws="1">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="316">Read the contents of the selected file into memory and return them.</doc>
        <source-position filename="compose/asc-unit.h" line="71"/>
        <return-value transfer-ownership="full">
          <type name="GLib.Bytes" c:type="GBytes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="318">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="319">The file to read data for.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_id" c:identifier="asc_unit_set_bundle_id">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="130">Sets the ID of the bundle represented by this unit.</doc>
        <source-position filename="compose/asc-unit.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="132">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="133">The new ID.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bundle_kind" c:identifier="asc_unit_set_bundle_kind">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="89">Sets the kind of the bundle this unit represents.</doc>
        <source-position filename="compose/asc-unit.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="91">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="kind" transfer-ownership="none">
            <type name="AppStream.BundleKind" c:type="AsBundleKind"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contents" c:identifier="asc_unit_set_contents">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="178">Set list of files this unit contains.</doc>
        <source-position filename="compose/asc-unit.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="180">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="contents" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="181">A list of files contained by this unit.</doc>
            <array name="GLib.PtrArray" c:type="GPtrArray*">
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_data" c:identifier="asc_unit_set_user_data">
        <doc xml:space="preserve"
             filename="compose/asc-unit.c"
             line="350">Assign user-defined data to this object. This is a helper
function for bindings.</doc>
        <source-position filename="compose/asc-unit.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="352">an #AscUnit instance.</doc>
            <type name="Unit" c:type="AscUnit*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="compose/asc-unit.c"
                 line="353">the user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="UnitClass"
            c:type="AscUnitClass"
            glib:is-gtype-struct-for="Unit">
      <source-position filename="compose/asc-unit.h" line="49"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="open">
        <callback name="open" throws="1">
          <source-position filename="compose/asc-unit.h" line="37"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="234">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="close">
        <callback name="close">
          <source-position filename="compose/asc-unit.h" line="38"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="253">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="file_exists">
        <callback name="file_exists">
          <source-position filename="compose/asc-unit.h" line="40"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="271">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="272">The filename to check.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dir_exists">
        <callback name="dir_exists">
          <source-position filename="compose/asc-unit.h" line="41"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="300">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="dirname" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="301">The directory name to check.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read_data">
        <callback name="read_data" throws="1">
          <source-position filename="compose/asc-unit.h" line="42"/>
          <return-value transfer-ownership="full">
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </return-value>
          <parameters>
            <parameter name="unit" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="318">an #AscUnit instance.</doc>
              <type name="Unit" c:type="AscUnit*"/>
            </parameter>
            <parameter name="filename" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="compose/asc-unit.c"
                   line="319">The file to read data for.</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_as_reserved1" introspectable="0">
        <callback name="_as_reserved1">
          <source-position filename="compose/asc-unit.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved2" introspectable="0">
        <callback name="_as_reserved2">
          <source-position filename="compose/asc-unit.h" line="46"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved3" introspectable="0">
        <callback name="_as_reserved3">
          <source-position filename="compose/asc-unit.h" line="47"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_as_reserved4" introspectable="0">
        <callback name="_as_reserved4">
          <source-position filename="compose/asc-unit.h" line="48"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <function name="build_component_global_id"
              c:identifier="asc_build_component_global_id">
      <doc xml:space="preserve"
           filename="compose/asc-utils.c"
           line="31">Builds a global component ID from a component-id
and a (usually MD5) checksum generated from the component data.

The global-id is used as a global, unique identifier for a component.
(while the component-ID is local, e.g. for one source).
Its primary usecase is to identify a media directory on the filesystem which is
associated with this component.</doc>
      <source-position filename="compose/asc-utils.h" line="31"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="component_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="33">an AppStream component ID.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="checksum" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="34">a MD5 hashsum as string generated from the component's combined metadata.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="canvas_error_quark"
              c:identifier="asc_canvas_error_quark"
              moved-to="CanvasError.quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-canvas.c"
             line="58">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="compose_error_quark"
              c:identifier="asc_compose_error_quark"
              moved-to="ComposeError.quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="81">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="filename_from_url" c:identifier="asc_filename_from_url">
      <doc xml:space="preserve"
           filename="compose/asc-utils.c"
           line="87">Generate a filename from a web-URL that can be used to store the
file on disk after download.</doc>
      <source-position filename="compose/asc-utils.h" line="33"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="url" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-utils.c"
               line="89">The URL to extract a filename from.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_add_hint_tag"
              c:identifier="asc_globals_add_hint_tag">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="408">Register a new hint tag. If a previous tag with the given name
already existed, the existing tag will not be replaced unless
@overrideExisting is set to %TRUE.
Please be careful when overriding tags! Tag severities can not
be lowered by overriding a tag.</doc>
      <source-position filename="compose/asc-globals.h" line="61"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="421">%TRUE if the tag was registered and did not exist previously.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="410">the tag-ID to add</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="severity" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="411">the tag severity as #AsIssueSeverity</doc>
          <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
        </parameter>
        <parameter name="explanation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="412">the tag explanatory message</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="overrideExisting" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-globals.c"
               line="413">whether an existing tag should be replaced</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_clear" c:identifier="asc_globals_clear">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="163">Clear all global state and restore defaults.</doc>
      <source-position filename="compose/asc-globals.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="globals_get_ffprobe_binary"
              c:identifier="asc_globals_get_ffprobe_binary">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="274">Get path to the "ffprobe" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="58"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_hint_tags"
              c:identifier="asc_globals_get_hint_tags">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="474">Retrieve all hint tags that we know.</doc>
      <source-position filename="compose/asc-globals.h" line="65"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="479">A list of valid hint tags. Free with %g_strfreev</doc>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="globals_get_optipng_binary"
              c:identifier="asc_globals_get_optipng_binary">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="247">Get path to the "optipng" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_tmp_dir"
              c:identifier="asc_globals_get_tmp_dir">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="179">Get temporary directory used by appstream-compose.</doc>
      <source-position filename="compose/asc-globals.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_tmp_dir_create"
              c:identifier="asc_globals_get_tmp_dir_create">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="191">Get temporary directory used by appstream-compose
and try to create it if it does not exist.</doc>
      <source-position filename="compose/asc-globals.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="globals_get_use_optipng"
              c:identifier="asc_globals_get_use_optipng">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="218">Get whether images should be optimized using optipng.</doc>
      <source-position filename="compose/asc-globals.h" line="52"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="globals_hint_tag_explanation"
              c:identifier="asc_globals_hint_tag_explanation">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="520">Retrieve the explanation template of the given hint tag.</doc>
      <source-position filename="compose/asc-globals.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="525">An explanation template, or %NULL if the tag was not found.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_hint_tag_severity"
              c:identifier="asc_globals_hint_tag_severity">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="503">Retrieve the severity of the given hint tag.</doc>
      <source-position filename="compose/asc-globals.h" line="66"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-globals.c"
             line="508">An #AsIssueSeverity or %AS_ISSUE_SEVERITY_UNKNOWN if the tag did not exist
         or has an unknown severity.</doc>
        <type name="AppStream.IssueSeverity" c:type="AsIssueSeverity"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_ffprobe_binary"
              c:identifier="asc_globals_set_ffprobe_binary">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="286">Set path to the "ffprobe" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_optipng_binary"
              c:identifier="asc_globals_set_optipng_binary">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="259">Set path to the "optipng" binary we should use.</doc>
      <source-position filename="compose/asc-globals.h" line="56"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_tmp_dir"
              c:identifier="asc_globals_set_tmp_dir">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="205">Set temporary directory used by appstream-compose.</doc>
      <source-position filename="compose/asc-globals.h" line="50"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="globals_set_use_optipng"
              c:identifier="asc_globals_set_use_optipng">
      <doc xml:space="preserve"
           filename="compose/asc-globals.c"
           line="230">Set whether images should be optimized using optipng.</doc>
      <source-position filename="compose/asc-globals.h" line="53"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="enabled" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_state_from_string"
              c:identifier="asc_icon_state_from_string"
              moved-to="IconState.from_string">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="138">Converts the text representation to an enumerated value.</doc>
      <source-position filename="compose/asc-icon-policy.h" line="70"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="144">a #AscIconState</doc>
        <type name="IconState" c:type="AscIconState"/>
      </return-value>
      <parameters>
        <parameter name="state_str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="140">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_state_to_string"
              c:identifier="asc_icon_state_to_string"
              moved-to="IconState.to_string">
      <doc xml:space="preserve"
           filename="compose/asc-icon-policy.c"
           line="117">Converts the enumerated value to an text representation.</doc>
      <source-position filename="compose/asc-icon-policy.h" line="69"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-icon-policy.c"
             line="123">string version of @istate</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="istate" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-icon-policy.c"
               line="119">the #AscIconState.</doc>
          <type name="IconState" c:type="AscIconState"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_error_quark"
              c:identifier="asc_image_error_quark"
              moved-to="ImageError.quark">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="52">An error quark.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="image_format_from_filename"
              c:identifier="asc_image_format_from_filename"
              moved-to="ImageFormat.from_filename">
      <doc xml:space="preserve"
           filename="compose/asc-image.c"
           line="123">Returns the image format type based on the given file's filename.</doc>
      <source-position filename="compose/asc-image.h" line="120"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="129">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
        <type name="ImageFormat" c:type="AscImageFormat"/>
      </return-value>
      <parameters>
        <parameter name="fname" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="125">the filename.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_format_from_string"
              c:identifier="asc_image_format_from_string"
              moved-to="ImageFormat.from_string">
      <doc xml:space="preserve"
           filename="compose/asc-image.c"
           line="93">Converts the text representation to an enumerated value.</doc>
      <source-position filename="compose/asc-image.h" line="119"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="99">a #AscImageFormat or %ASC_IMAGE_FORMAT_UNKNOWN for unknown</doc>
        <type name="ImageFormat" c:type="AscImageFormat"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="95">the string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="image_format_to_string"
              c:identifier="asc_image_format_to_string"
              moved-to="ImageFormat.to_string">
      <doc xml:space="preserve"
           filename="compose/asc-image.c"
           line="63">Converts the enumerated value to an text representation.</doc>
      <source-position filename="compose/asc-image.h" line="118"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="compose/asc-image.c"
             line="69">string version of @format</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="65">the %AscImageFormat.</doc>
          <type name="ImageFormat" c:type="AscImageFormat"/>
        </parameter>
      </parameters>
    </function>
    <function name="optimize_png" c:identifier="asc_optimize_png" throws="1">
      <doc xml:space="preserve"
           filename="compose/asc-image.c"
           line="192">Optimizes a PNG graphic for size with optipng, if its binary
is available and this feature is enabled.</doc>
      <source-position filename="compose/asc-image.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="fname" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="compose/asc-image.c"
               line="194">Filename of the PNG image to optimize.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_blur" c:identifier="asc_pixbuf_blur">
      <source-position filename="compose/asc-image.h" line="167"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="radius" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="iterations" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_sharpen" c:identifier="asc_pixbuf_sharpen">
      <source-position filename="compose/asc-image.h" line="168"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="radius" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="amount" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
