From c4dc2a8ccc3c711ff7bcc5503146fdd9c6d15506 Mon Sep 17 00:00:00 2001 From: Sara Date: Thu, 25 Jan 2024 00:05:44 +0100 Subject: [PATCH] feat: variant now only has double as_number as opposed to separate numeric types for int, unsigned int, and float --- core/src/variant.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/core/src/variant.h b/core/src/variant.h index 3e5c1ca..b7b4a9e 100644 --- a/core/src/variant.h +++ b/core/src/variant.h @@ -6,32 +6,25 @@ typedef enum VariantType { Variant_Undefined = 0x0, - Variant_Float = 0x1, - Variant_Int = 0x2, - Variant_Unsigned = 0x3, - Variant_Vector = 0x4, - Variant_Object = 0x5, - Variant_String = 0x6, + Variant_Number = 0x1, + Variant_Vector = 0x2, + Variant_Object = 0x3, + Variant_String = 0x4, } VariantType; typedef struct Variant { VariantType type; union { - float as_float; - long as_int; - unsigned as_unsigned; + double as_number; Vector as_vector; Mirror as_object; char* as_string; }; } Variant; -#define FloatVariant(Value_) (Variant){.type = Variant_Float, .as_float = Value_} -#define IntVariant(Value_) (Variant){.type = Variant_Int, .as_int = Value_} -#define UnsignedVariant(Value_) (Variant){.type = Variant_Unsigned, .as_unsigned = Value_} +#define NumberVariant(Value_) (Variant){.type = Variant_Number, .as_number = Value_} #define VectorVariant(Value_) (Variant){.type = Variant_Vector, .as_vector = 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 } #endif // !_fencer_variant_h