#ifndef _TEST_HEADER_H
#define _TEST_HEADER_H

#include "kwil.h"
#include "header.kwil.h"

KWIL_ENUM()
enum enum_A {
    VALUE_A,
    VALUE_B,
    VALUE_C
};

KWIL_STRUCT()
struct struct_A {
    KWIL_FIELD()
    int b;
    KWIL_FIELD()
    float a;
    KWIL_FIELD()
    unsigned u;
    KWIL_FIELD()
    char* dyn_str;
};

typedef enum enum_A enum_A;
typedef struct struct_A struct_A;

KWIL_STRUCT()
struct struct_B {
    KWIL_FIELD()
    float f;

    float f_NOT_KWIL;
    int i_NOT_KWIL;

    KWIL_FIELD()
    int i;
    KWIL_FIELD()
    char* str;
    KWIL_FIELD()
    char str_static[44];

    KWIL_FIELD()
    struct struct_A other_struct;
    KWIL_FIELD()
    struct_A other_struct_typedef;

    KWIL_FIELD()
    enum enum_A other_enum;
    KWIL_FIELD()
    enum_A other_enum_typedef;
};

#endif // !_TEST_HEADER_H