feat: variant now only has double as_number
as opposed to separate numeric types for int, unsigned int, and float
This commit is contained in:
parent
1d92c6b827
commit
c4dc2a8ccc
|
@ -6,32 +6,25 @@
|
||||||
|
|
||||||
typedef enum VariantType {
|
typedef enum VariantType {
|
||||||
Variant_Undefined = 0x0,
|
Variant_Undefined = 0x0,
|
||||||
Variant_Float = 0x1,
|
Variant_Number = 0x1,
|
||||||
Variant_Int = 0x2,
|
Variant_Vector = 0x2,
|
||||||
Variant_Unsigned = 0x3,
|
Variant_Object = 0x3,
|
||||||
Variant_Vector = 0x4,
|
Variant_String = 0x4,
|
||||||
Variant_Object = 0x5,
|
|
||||||
Variant_String = 0x6,
|
|
||||||
} VariantType;
|
} VariantType;
|
||||||
|
|
||||||
typedef struct Variant {
|
typedef struct Variant {
|
||||||
VariantType type;
|
VariantType type;
|
||||||
union {
|
union {
|
||||||
float as_float;
|
double as_number;
|
||||||
long as_int;
|
|
||||||
unsigned as_unsigned;
|
|
||||||
Vector as_vector;
|
Vector as_vector;
|
||||||
Mirror as_object;
|
Mirror as_object;
|
||||||
char* as_string;
|
char* as_string;
|
||||||
};
|
};
|
||||||
} Variant;
|
} Variant;
|
||||||
|
|
||||||
#define FloatVariant(Value_) (Variant){.type = Variant_Float, .as_float = Value_}
|
#define NumberVariant(Value_) (Variant){.type = Variant_Number, .as_number = Value_}
|
||||||
#define IntVariant(Value_) (Variant){.type = Variant_Int, .as_int = Value_}
|
|
||||||
#define UnsignedVariant(Value_) (Variant){.type = Variant_Unsigned, .as_unsigned = Value_}
|
|
||||||
#define VectorVariant(Value_) (Variant){.type = Variant_Vector, .as_vector = Value_}
|
#define VectorVariant(Value_) (Variant){.type = Variant_Vector, .as_vector = Value_}
|
||||||
#define ObjectVariant(Value_) (Variant){.type = Variant_Object, .as_object = Value_}
|
#define ObjectVariant(Value_) (Variant){.type = Variant_Object, .as_object = Value_}
|
||||||
#define StringVariant(Value_) (Variant){.type = Variant_String, .as_string = Value_}
|
|
||||||
#define UndefinedVariant() (Variant){.type = Variant_Undefined }
|
#define UndefinedVariant() (Variant){.type = Variant_Undefined }
|
||||||
|
|
||||||
#endif // !_fencer_variant_h
|
#endif // !_fencer_variant_h
|
||||||
|
|
Loading…
Reference in a new issue