### Struct

# GLib VariantIter

since: 2.0

#### Description

    struct GVariantIter {
      /* No available fields */
    }

`GVariantIter` is an opaque data structure and can only be accessed using the following functions.

Available since: 2.0

#### Instance methods

###### g_variant_iter_copy

Creates a new heap-allocated `GVariantIter` to iterate over the container that was being iterated over by `iter`. Iteration begins on the new iterator from the current position of the old iterator but the two copies are independent past that point.

since: 2.24

###### g_variant_iter_free

Frees a heap-allocated `GVariantIter`. Only call this function on iterators that were returned by `g_variant_iter_new()` or g_variant_iter_copy().

since: 2.24

###### g_variant_iter_init

Initialises (without allocating) a `GVariantIter`. `iter` may be completely uninitialised prior to this call; its old value is ignored.

since: 2.24

###### g_variant_iter_loop

Gets the next item in the container and unpacks it into the variable argument list according to `format_string`, returning `TRUE`.

since: 2.24

###### g_variant_iter_n_children

Queries the number of child items in the container that we are iterating over. This is the total number of items — not the number of items remaining.

since: 2.24

###### g_variant_iter_next

Gets the next item in the container and unpacks it into the variable argument list according to `format_string`, returning `TRUE`.

since: 2.24

###### g_variant_iter_next_value

Gets the next item in the container. If no more items remain then `NULL` is returned.

since: 2.24