rendered paste body#include <glib-object.h>#include "generator.h"void generate(Generator *gen, va_list args){ int number = va_arg(args, int); int exponent = va_arg(args, int); GValue value = {0}; g_value_init(&value, G_TYPE_INT); int result = 1; int counter = 0; while(counter++ < exponent) { result *= number; g_value_set_int(&value, result); generator_yield(gen, &value); }}int main(){ g_type_init(); Generator *gen = generator_new(); GValue value = {0}; generator_init(gen, generate, 2, 8); while(generator_next(gen, &value)) { gchar *repr = g_strdup_value_contents(&value); g_print("Value = %s\n", repr); g_free(repr); } generator_free(gen); return 0;}