#ifndef GODOT_VARIANT_H_ED7F2EB6 #define GODOT_VARIANT_H_ED7F2EB6 #include <string> #include <variant> #include <vector> struct GodotVariant { using value_type = std::variant<std::monostate, bool, std::vector<std::string>, std::vector<GodotVariant>>; value_type value; GodotVariant(value_type v) : value(v) {} bool AsBool() const { return std::get<bool>(value); } const std::vector<std::string>& AsNodePath() const { return std::get<std::vector<std::string>>(value); } const std::vector<GodotVariant>& AsArray() const { return std::get<std::vector<GodotVariant>>(value); } }; GodotVariant ParseGodotFile(std::string filename); #endif /* end of include guard: GODOT_VARIANT_H_ED7F2EB6 */