Variant.h 1.14 KB
#pragma one

#include <string>
namespace osdev::components {
class Variant
{
public:
    enum Type {
        Invalid,    // Unknown
        Bool,       // bool
        Int,        // int (standard)
        UInt,       // Unsigned int
        Double,     // double
        Float,      // float
        Char,       // char
        String,     // std::string
        UInt8,      // uint8_t
        UInt16,     // uint16_t
        UInt32,     // uint32_t
        UInt64,     // uint64_t
        Int8,       // int8_t
        Int16,      // int16_t
        Int32,      // int32_t
        Int64       // int64_t
    };

    /*!
     *  All Constructors available
     */
    Variant();
    Variant(Type type);
    Variant(bool value);
    Variant(int value);
    Variant(uint value);
    Variant(double value);
    Variant(float value);
    Variant(char value);
    Variant(std::string value);
    Variant(uint8_t value);
    Variant(uint16_t value);
    Variant(uint32_t value);
    Variant(uint64_t value);
    Variant(int8_t value);
    Variant(int16_t value);
    Variant(int32_t value);
    Variant(int64_t value);

    
};

}   /* End namespace osdev::components */