45 explicit operator bool()
const {
return node_ !=
nullptr; }
52 bool isNumber()
const;
56 bool isIntegerLiteral()
const;
58 bool isString()
const;
60 bool isObject()
const;
66 bool has(
const char*
key)
const;
72 std::vector<std::string> keys()
const;
86 bool asBool(
bool fallback =
false)
const;
88 int asInt(
int fallback = 0)
const;
90 float asFloat(
float fallback = 0.f)
const;
92 double asDouble(
double fallback = 0.0)
const;
94 std::int64_t asInt64(std::int64_t fallback = 0)
const;
96 std::string asString(
const std::string& fallback = {})
const;
101 bool getBool(
const char*
key,
bool fallback =
false)
const;
103 int getInt(
const char*
key,
int fallback = 0)
const;
105 float getFloat(
const char*
key,
float fallback = 0.f)
const;
107 double getDouble(
const char*
key,
double fallback = 0.0)
const;
109 std::string getString(
const char*
key,
const std::string& fallback = {})
const;
114 std::vector<std::string> getStringArray(
const char*
key)
const;
116 std::vector<int> getIntArray(
const char*
key)
const;
118 std::vector<float> getFloatArray(
const char*
key)
const;
119 std::unordered_map<std::string, std::string> getStringMap(
const char*
key)
const;
120 std::unordered_map<std::string, int> getIntMap(
const char*
key)
const;
124 std::vector<std::string> toStringArray()
const;
129 const Node* node_ =
nullptr;