37 explicit operator bool()
const {
return node_ !=
nullptr; }
41 bool isNumber()
const;
42 bool isString()
const;
43 bool isObject()
const;
47 bool has(
const char* key)
const;
49 Value get(
const char* key)
const;
51 std::vector<std::string> keys()
const;
57 Value at(
size_t index)
const;
62 bool asBool(
bool fallback =
false)
const;
63 int asInt(
int fallback = 0)
const;
64 float asFloat(
float fallback = 0.f)
const;
65 double asDouble(
double fallback = 0.0)
const;
66 std::string asString(
const std::string& fallback = {})
const;
70 bool getBool(
const char* key,
bool fallback =
false)
const;
71 int getInt(
const char* key,
int fallback = 0)
const;
72 float getFloat(
const char* key,
float fallback = 0.f)
const;
73 double getDouble(
const char* key,
double fallback = 0.0)
const;
74 std::string getString(
const char* key,
const std::string& fallback = {})
const;
78 std::vector<std::string> getStringArray(
const char* key)
const;
79 std::vector<int> getIntArray(
const char* key)
const;
80 std::vector<float> getFloatArray(
const char* key)
const;
81 std::unordered_map<std::string, std::string> getStringMap(
const char* key)
const;
82 std::unordered_map<std::string, int> getIntMap(
const char* key)
const;
85 std::vector<std::string> toStringArray()
const;
89 explicit Value(
const Node* node) : node_(node) {}
90 const Node* node_ =
nullptr;