porymap/include/lib/fex/array.h

56 lines
1.1 KiB
C++

#ifndef INCLUDE_CORE_ARRAY_H
#define INCLUDE_CORE_ARRAY_H
#include <string>
#include <vector>
#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<ArrayValue> &values() const
{
return values_;
}
std::vector<ArrayValue> 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<ArrayValue> values_;
};
} // namespace fex
#endif // INCLUDE_CORE_ARRAY_H