#ifndef CONST_CONTAINER_TEST_RETURN_VAL_H_ #define CONST_CONTAINER_TEST_RETURN_VAL_H_ #include #include enum ReturnCode { FAILED = -1, PASSED = 0 }; struct ret_val_s { const char *test_name = ""; ReturnCode val = FAILED; const char *msg = ""; }; template struct ret_val { const char * name; std::array vals; [[nodiscard]] constexpr inline std::size_t size() const { return vals.size(); } constexpr inline ret_val_s& operator[](std::size_t i) { return vals[i]; } constexpr inline const ret_val_s& operator[](std::size_t i) const { return vals[i]; } }; std::ostream& operator<<(std::ostream& os, const ReturnCode &rc) { switch (rc) { case FAILED: return os << "FAILED"; case PASSED: return os << "PASSED"; default: return os; } } #endif //CONST_CONTAINER_TEST_RETURN_VAL_H_