## InfBrowserIter InfBrowserIter — Iterating through browsed nodes |

## Stability Level

Unstable, unless otherwise indicated

## Functions

InfBrowserIter * | inf_browser_iter_copy ()
void | inf_browser_iter_free ()

## Types and Values

struct | InfBrowserIter

## Object Hierarchy

        GBoxed
        ╰── InfBrowserIter

## Includes

    #include <libinfinity/common/inf-browser-iter.h>

## Description

InfBrowserIter is used to iterate through the nodes of a InfBrowser. Normally, InfBrowserIter is allocated on the stack and initialized by a InfBrowser API call, such as `inf_browser_get_root()`. You can also safely copy the struct by value to create a copy. It is not necessary to free it.

Most operations are done via the InfBrowser API. The methods described here could be useful to language bindings, however.

An initialized InfBrowserIter always points to a node within the InfBrowser. It stays valid as long as the node it points to is not removed from the browser (if it is, the “node-removed”) signal is emitted.

## Functions

### inf_browser_iter_copy ()

    InfBrowserIter *
    inf_browser_iter_copy (const InfBrowserIter *iter);

Makes a dynamically allocated copy of `iter` . This should not be used by applications because you can copy the structs by value.

#### Parameters

iter | A InfBrowserIter. |

#### Returns

A newly-allocated copy of `iter` .

[transfer full]

### inf_browser_iter_free ()

    void
    inf_browser_iter_free (InfBrowserIter *iter);

Frees a InfBrowserIter allocated by `inf_browser_iter_copy()`.

#### Parameters

iter | A InfBrowserIter. |

## Types and Values

### struct InfBrowserIter

    struct InfBrowserIter {
    };

The InfBrowserIter structure is opaque, however it is guaranteed that it can be copied by value and does not hold any dynamic data that would need to be freed explicitly.

## See Also

InfBrowser