#ifndef INCLUDE_CORE_ARRAY_H #define INCLUDE_CORE_ARRAY_H #include #include #include "array_value.h" namespace fex { class Array { public: Array(std::string type, std::string name) : type_(type), name_(name) {} void Add(ArrayValue value) { values_.push_back(std::move(value)); } const std::string &type() const { return type_; } const std::string &name() const { return name_; } const std::vector &values() const { return values_; } std::vector release_values() { return std::move(values_); } std::string ToString() const { std::string out = name_ + ":\n"; for (const ArrayValue &v : values_) { out += v.ToString() + "\n"; } return out; } private: std::string type_; std::string name_; std::vector values_; }; } // namespace fex #endif // INCLUDE_CORE_ARRAY_H