EHS/include/ehs/json/JsonVar.h
karutoh 1a4a1ecd9c
Some checks failed
Build & Release / Linux-x86_64-Build (push) Successful in 40s
Build & Release / Linux-AARCH64-Build (push) Has been cancelled
First commit.
2024-01-31 22:28:19 -08:00

109 lines
2.0 KiB
C++

#pragma once
#include "ehs/EHS.h"
#include "ehs/Str.h"
namespace ehs
{
class JsonBase;
class JsonObj;
class JsonArray;
class JsonBool;
class JsonNum;
class JsonStr;
class JsonVar
{
private:
UInt_64 hashId;
Str_8 id;
JsonBase* value;
public:
virtual ~JsonVar();
JsonVar();
JsonVar(Str_8 id);
JsonVar(Str_8 id, const JsonBase* const value);
JsonVar(Str_8 id, const JsonBase& value);
JsonVar(Str_8 id, const JsonObj& value);
JsonVar(Str_8 id, const JsonArray& value);
JsonVar(Str_8 id, const JsonBool& value);
JsonVar(Str_8 id, const bool boolean);
JsonVar(Str_8 id, const JsonNum& value);
JsonVar(Str_8 id, const SInt_64 num);
JsonVar(Str_8 id, const UInt_64 num);
JsonVar(Str_8 id, const SInt_32 num);
JsonVar(Str_8 id, const UInt_32 num);
JsonVar(Str_8 id, const SInt_16 num);
JsonVar(Str_8 id, const UInt_16 num);
JsonVar(Str_8 id, const SInt_8 num);
JsonVar(Str_8 id, const UInt_8 num);
JsonVar(Str_8 id, const double num);
JsonVar(Str_8 id, const float num);
JsonVar(Str_8 id, const JsonStr& value);
JsonVar(Str_8 id, const Char_8* str, const UInt_64 size = 0);
JsonVar(Str_8 id, Str_8 str);
JsonVar(JsonVar&& var) noexcept;
JsonVar(const JsonVar& var);
JsonVar& operator=(JsonVar&& var) noexcept;
JsonVar& operator=(const JsonVar& var);
UInt_64 GetHashId() const;
Str_8 GetId() const;
void SetValue(const JsonBase* const newValue);
void SetValue(const JsonBase& newValue);
void SetValue(const JsonObj& newValue);
void SetValue(const JsonArray& newValue);
void SetValue(const JsonBool& newValue);
void SetValue(const bool newValue);
void SetValue(const JsonNum& newValue);
void SetValue(const float newValue);
void SetValue(const JsonStr& newValue);
void SetValue(const Char_8* newValue, const UInt_64 size = 0);
void SetValue(const Str_8& newValue);
const JsonBase* GetValue() const;
JsonBase* GetValue();
Str_8 ToStr(const UInt_64 level, const bool compact) const;
};
}