50 void AddDataWHeader(
const std::string& header,
const std::string& data);
89 const std::vector<std::string>&
HeadersInOrder()
const {
return headers_in_order_; }
97 bool IsData(
const std::string_view header)
const {
98 const std::string header_str(header);
99 return (std::ranges::any_of(headers_in_order_,
100 [&header_str](
const auto& ordered_header) {
101 return (ordered_header == header_str);
112 std::string
GetDataAsStr(
const std::string_view header)
const;
122 std::optional<double>
GetDataAsDouble(
const std::string_view header)
const;
132 std::optional<unsigned int>
GetDataAsUInt(
const std::string_view header)
const;
141 std::optional<bool>
GetDataAsBool(
const std::string_view header)
const;
167 std::string GetHeaderToAdd(
const std::string& in_header)
const;
171 std::map<std::string, std::variant<unsigned int, double, bool, std::string>> headers_w_data_;
174 std::vector<std::string> headers_in_order_;
180 for (
const auto& header : run_data.headers_in_order_) {
181 os << header <<
": " << run_data.
GetDataAsStr(header) << std::endl;
std::ostream & operator<<(std::ostream &os, const RunData &run_data)
Class to store headers with data corresponding to current program run and evaluation.
friend std::ostream & operator<<(std::ostream &os, const RunData &run_data)
Overloaded << operator for output to stream.
const std::vector< std::string > & HeadersInOrder() const
Return data headers in order.
void AppendData(const RunData &rundata)
Append current RunData with input RunData.
std::optional< unsigned int > GetDataAsUInt(const std::string_view header) const
Get data corresponding to header as unsigned int Return null if data corresponds to a different data ...
bool IsData(const std::string_view header) const
Return whether or not there is data corresponding to a specific header.
std::string GetDataAsStr(const std::string_view header) const
Get data corresponding to header as a string Returns data as string regardless of underlying data typ...
void AddDataWHeader(const std::string &header, const std::string &data)
Add string data with header describing added data.
std::optional< double > GetDataAsDouble(const std::string_view header) const
Get data corresponding to header as double Return null if data corresponds to a different data type.
std::optional< bool > GetDataAsBool(const std::string_view header) const
Get data corresponding to header as boolean Return null if data corresponds to a different data type.