#pragma once

#include "ehs/EHS.h"
#include "ehs/Str.h"

namespace ehs
{
	enum class JsonType
	{
		NULLOBJ,
		OBJ,
		ARRAY,
		BOOL,
		NUM,
		STR
	};

	class EHS_LIB_IO JsonBase
	{
	private:
		JsonType type;

	public:
		virtual ~JsonBase() = default;

		JsonBase();

		JsonBase(JsonType type);

		JsonBase(const JsonBase& base) = default;

		JsonType GetType() const;

		virtual Str_8 ToStr(UInt_64 level, bool compact) const;
	};
}