A
allow-none
NULL is OK, both for passing and for returning.
array
Parameter points to an array of items.
C
closure
This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.
E
element-type
Generics and defining elements of containers and arrays.
I
inout
Parameter for input and for returning results. Default is transfer full.
N
not nullable
NULL must not be passed as the value in, out, in-out; or as a return value.
nullable
NULL may be passed as the value in, out, in-out; or as a return value.
O
optional
NULL may be passed instead of a pointer to a location.
out
Parameter for returning results. Default is transfer full.
out caller-allocates
Out parameter, where caller must allocate storage.
S
scope call
The callback is valid only during the call to the method.
skip
Exposed in C code, not necessarily available in other languages.
T
transfer container
Free data container after the code is done.
transfer full
Free data after the code is done.
transfer none
Don't free data after the code is done.
U
Unstable
Unstable interfaces are experimental or transitional. They are typically used to
give outside developers early access to new or rapidly changing technology, or
to provide an interim solution to a problem where a more general solution is
anticipated. No claims are made about either source or binary compatibility from
one minor release to the next.
The Unstable interface level is a warning that these interfaces are subject to
change without warning and should not be used in unbundled products.
Given such caveats, customer impact need not be a factor when considering
incompatible changes to an Unstable interface in a major or minor release.
Nonetheless, when such changes are introduced, the changes should still be
mentioned in the release notes for the affected release.