GDK supports content in 2 forms: `GType` and mime type. Using `GTypes` is meant only for in-process content transfers. Mime types are
meant to be used for data passing both in-process and out-of-process. The details of how data is passed is described in the documentation
of the actual implementations. To transform between the two forms, [[email protected]] and [[email protected]] are
used.
A `GdkContentFormats` describes a set of possible formats content can be exchanged in. It is assumed that this set is ordered. `GTypes`
are more important than mime types. Order between different `GTypes` or mime types is the order they were added in, most important first.
Functions that care about order, such as [[email protected]], will describe in their documentation how they interpret that
order, though in general the order of the first argument is considered the primary order of the result, followed by the order of further
arguments.
For debugging purposes, the function [[email protected]_string] exists. It will print a comma-separated list of formats from
most important to least important.
`GdkContentFormats` is an immutable struct. After creation, you cannot change the types it represents. Instead, new `GdkContentFormats`
have to be created. The [[email protected]] structure is meant to help in this endeavor.