#ifndef TSL_VALUE_H #define TSL_VALUE_H #include #include typedef enum { TSL_TYPE_NULL, TSL_TYPE_NUMBER, TSL_TYPE_STRING, TSL_TYPE_BOOL, TSL_TYPE_LIST, TSL_TYPE_MAP, TSL_TYPE_USERDATA } TslType; /* TODO: Support BigInt */ typedef double TslNumber; typedef enum { TSL_FALSE, TSL_TRUE } TslBool; typedef struct { char *data; size_t size; } TslString; /* TODO: Implement this */ typedef struct { void *data; } TslList; /* TODO: Implement this */ typedef struct { void *data; } TslMap; typedef struct { union { TslNumber number; TslString *string; TslBool boolean; TslList *list; TslMap *map; void *userdata; } data; uint8_t type; } TslValue; #endif /* TSL_VALUE_H */