From 29c85b58c7913e041dd0cc4cc15a8c5d19d51a18 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Fri, 22 Nov 2024 18:27:34 +0100 Subject: [PATCH] Basic datatypes --- src/datatype.h | 10 ++++++++++ src/datatypes/primitives.cpp | 11 +++++++++++ src/datatypes/primitives.h | 24 ++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/datatype.h create mode 100644 src/datatypes/primitives.cpp create mode 100644 src/datatypes/primitives.h diff --git a/src/datatype.h b/src/datatype.h new file mode 100644 index 0000000..d568c91 --- /dev/null +++ b/src/datatype.h @@ -0,0 +1,10 @@ +#pragma once + +#include +#include "datatypes/primitives.h" + +typedef std::variant DataValue; + +const uint DAT_STRING = 0; +const uint DAT_INT = 1; +const uint DAT_FLOAT = 2; \ No newline at end of file diff --git a/src/datatypes/primitives.cpp b/src/datatypes/primitives.cpp new file mode 100644 index 0000000..2170d4a --- /dev/null +++ b/src/datatypes/primitives.cpp @@ -0,0 +1,11 @@ +#include "primitives.h" + +StringData::StringData(std::string str) : wrapped(str) {} +StringData::operator std::string() { return wrapped; } + +IntData::IntData(int in) : wrapped(in) {} +IntData::operator int() { return wrapped; } + +FloatData::FloatData(float in) : wrapped(in) {} +FloatData::operator float() { return wrapped; } + diff --git a/src/datatypes/primitives.h b/src/datatypes/primitives.h new file mode 100644 index 0000000..169d5e6 --- /dev/null +++ b/src/datatypes/primitives.h @@ -0,0 +1,24 @@ +#pragma once + +#include + +class StringData { + std::string wrapped; +public: + StringData(std::string); + operator std::string(); +}; + +class IntData { + int wrapped; +public: + IntData(int); + operator int(); +}; + +class FloatData { + float wrapped; +public: + FloatData(float); + operator float(); +}; \ No newline at end of file