## GIEnumInfo

GIEnumInfo — Structs representing an enumeration and its values

## Synopsis

    #define             GI_IS_ENUM_INFO                     (info)
    #define             GI_IS_VALUE_INFO                    (info)
    typedef             GIEnumInfo;
    typedef             GIValueInfo;
    gint                g_enum_info_get_n_values            (GIEnumInfo *info);
    GIValueInfo *       g_enum_info_get_value               (GIEnumInfo *info,
                                                             gint n);
    GITypeTag           g_enum_info_get_storage_type        (GIEnumInfo *info);
    gint64              g_value_info_get_value              (GIValueInfo *info);

## Description

A GIEnumInfo represents an enumeration and a GIValueInfo struct represents a value of an enumeration. The GIEnumInfo contains a set of values and a type The GIValueInfo is fetched by calling `g_enum_info_get_value()` on a GIEnumInfo.

## Struct hierarchy

      GIBaseInfo
       +----GIRegisteredTypeInfo
             +----GIEnumInfo

## Details

### GI_IS_ENUM_INFO()

    #define             GI_IS_ENUM_INFO(info)

### GI_IS_VALUE_INFO()

    #define             GI_IS_VALUE_INFO(info)

### GIEnumInfo

    typedef GIBaseInfo GIEnumInfo;

Represents an enum or a flag.

### GIValueInfo

    typedef GIBaseInfo GIValueInfo;

Represents a enum value of a GIEnumInfo.

### g_enum_info_get_n_values ()

    gint                g_enum_info_get_n_values            (GIEnumInfo *info);

Obtain the number of values this enumeration contains.

`info` : | a GIEnumInfo
Returns : | the number of enumeration values

### g_enum_info_get_value ()

    GIValueInfo *       g_enum_info_get_value               (GIEnumInfo *info,
                                                             gint n);

Obtain a value for this enumeration.

`info` : | a GIEnumInfo
`n` : | index of value to fetch
Returns : | the enumeration value or `NULL` if type tag is wrong, free the struct with `g_base_info_unref()` when done. [transfer full]

### g_enum_info_get_storage_type ()

    GITypeTag           g_enum_info_get_storage_type        (GIEnumInfo *info);

Obtain the tag of the type used for the enum in the C ABI. This will will be a signed or unsigned integral type.

Note that in the current implementation the width of the type is computed correctly, but the signed or unsigned nature of the type may not match the sign of the type used by the C compiler.

`info` : | a GIEnumInfo
Returns : | the storage type for the enumeration

### g_value_info_get_value ()

    gint64              g_value_info_get_value              (GIValueInfo *info);

Obtain the enumeration value of the GIValueInfo.

`info` : | a GIValueInfo
Returns : | the enumeration value. This will always be representable as a 32-bit signed or unsigned value. The use of gint64 as the return type is to allow both.