#include "alloc.hpp" #include #include #include using namespace sliger::heap; auto Array::at(int32_t index) & -> Value& { if (index >= static_cast(this->values.size()) || index < 0) { std::cout << std::format( "index not in range, expected to be in range (0..{}), got: {}\n", this->values.size(), index); exit(1); } return values.at(static_cast(index)); } auto Struct::at(const std::string& field) & -> Value& { if (this->fields.find(field) == this->fields.end()) { std::cout << std::format( "field name not in struct, got: \"{}\"\n", field); exit(1); } return this->fields.at(field); } void Struct::assign(const std::string& field, Value&& value) { this->fields.insert_or_assign(field, value); }