<commit_before>// For conditions of distribution and use, see copyright notice in License.txt

#pragma once

#include "TundraCoreApi.h"
#include "CoreTypes.h"

#include <HashMap.h>
#include <Str.h>
#include <Vector.h>

namespace Tundra
{

class JSONValue;

typedef Vector<JSONValue> JSONArray;
typedef HashMap<String, JSONValue> JSONObject;

/// JSON value types.
enum JSONType<commit_msg>Windows throws a fit if JSONValue::GetObject() is called. The windows.h GetObject/GetObjectW macros kick in. Undefine GetObject to go around this.<commit_after>// For conditions of distribution and use, see copyright notice in License.txt

#pragma once

#include "TundraCoreApi.h"
#include "CoreTypes.h"

#include <HashMap.h>
#include <Str.h>
#include <Vector.h>

#ifdef WIN32
// Fix JSONValue::GetObjectW
// unresolved external symbol
#ifdef GetObject
#undef GetObject
#endif
#endif

namespace Tundra
{

class JSONValue;

typedef Vector<JSONValue> JSONArray;
typedef HashMap<String, JSONValue> JSONObject;

/// JSON value types.
enum JSONType
{'fraction_non_alphanumeric': 0.09883720930232558, 'fraction_numerical': 0.001937984496124031, 'mean_word_length': 5.260606060606061, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5186669', 'n_tokens_mistral': 330, 'n_tokens_neox': 319, 'n_words': 111}