/*** BEGIN file-header ***/

#include "enums.h"

/*** END file-header ***/
/*** BEGIN file-production ***/

/* enumerations from "@basename@" */
#include "@basename@"

/*** END file-production ***/

/*** BEGIN value-header ***/
GType
@enum_name@_get_type(void) {
    static gsize static_g_define_type_id = 0;

    if(g_once_init_enter(&static_g_define_type_id)) {
        static const G@Type@Value values [] = {
/*** END value-header ***/

/*** BEGIN value-production ***/
            { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
/*** END value-production ***/

/*** BEGIN value-tail ***/
            { 0, NULL, NULL }
        };

        GType g_define_type_id =
            g_@type@_register_static(g_intern_static_string("@EnumName@"), values);
        g_once_init_leave(&static_g_define_type_id, g_define_type_id);
    }

    return static_g_define_type_id;
}

/*** END value-tail ***/

/*** BEGIN file-tail ***/
/*** END file-tail ***/
