## generator

generator

## Functions

struct generator_ * | generator_state_ ()
void * | generator_argp_ ()
#define | generator_rtype_()
void * | generator_new_ ()
void | generator_free_ ()
#define | generator_t()
#define | generator_declare()
#define | generator_parm_()
#define | generator_parms_()
#define | generator_parms_inner_()
#define | generator_parms_outer_()
#define | generator_argfield_()
#define | generator_argstruct_()
#define | generator_arg_unpack_()
#define | generator_args_unpack_()
#define | generator_arg_pack_()
#define | generator_args_pack_()
#define | generator_def_()
#define | generator_def()
#define | generator_def_static()
#define | generator_yield()
void * | generator_next_ ()
#define | generator_next()
#define | generator_next_val()
#define | generator_free()

## Types and Values

struct | generator_
struct | generator_incomplete_

## Description

## Functions

### generator_state_ ()

    struct generator_ *
    generator_state_ (const void *ret);

### generator_argp_ ()

    void *
    generator_argp_ (const void *ret);

### generator_rtype_()

    #define             generator_rtype_(gen_)

### generator_new_ ()

    void *
    generator_new_ (void (*fn) (void *),
                    size_t retsize);

### generator_free_ ()

    void
    generator_free_ (void *ret,
                     size_t retsize);

### generator_t()

    #define             generator_t(rtype_)

### generator_declare()

    #define             generator_declare(name_, rtype_, ...)

### generator_parm_()

    #define generator_parm_(t_, n_)			t_ n_

### generator_parms_()

    #define             generator_parms_(...)

### generator_parms_inner_()

    #define             generator_parms_inner_(...)

### generator_parms_outer_()

    #define             generator_parms_outer_(...)

### generator_argfield_()

    #define generator_argfield_(t_, n_)		t_ n_;

### generator_argstruct_()

    #define             generator_argstruct_(...)

### generator_arg_unpack_()

    #define generator_arg_unpack_(t_, n_)		args->n_

### generator_args_unpack_()

    #define             generator_args_unpack_(...)

### generator_arg_pack_()

    #define generator_arg_pack_(t_, n_)		args->n_ = n_

### generator_args_pack_()

    #define             generator_args_pack_(...)

### generator_def_()

    #define             generator_def_(name_, rtype_, storage_, ...)

### generator_def()

    #define             generator_def(name_, rtype_, ...)

### generator_def_static()

    #define             generator_def_static(name_, rtype_, ...)

### generator_yield()

    #define             generator_yield(val_)

### generator_next_ ()

    void *
    generator_next_ (void *ret_);

### generator_next()

    #define             generator_next(gen_)

### generator_next_val()

    #define             generator_next_val(val_, gen_)

### generator_free()

    #define             generator_free(gen_)

## Types and Values

### struct generator_

    struct generator_ {
    	struct coroutine_state gen;
    	struct coroutine_state caller;
    	bool complete;
    	void *base;
    };

### struct generator_incomplete_

    struct generator_incomplete_;