#pragma once #include #include #include #include namespace display { inline std::string escape_csv(const std::string& value) { std::stringstream ret; ret<<"\""; for(auto v : value) { switch(v) { case '\n': ret << "\\n"; break; case '\t': ret << "\\t"; break; case '"': ret << "\\\""; break; default: ret << v; break; } } ret<<"\""; return ret.str(); } inline std::string to_string(std::chrono::seconds v) { std::stringstream ret; ret << v.count() << " second" << (v.count()!=1?"s":""); return ret.str(); } inline std::string to_string(std::chrono::minutes v) { std::stringstream ret; ret << v.count() << " minute" << (v.count()!=1?"s":""); return ret.str(); } inline void header(std::string app_name) { std::cout << "\033[2J" << "\033[1;1H"; std::cout << "Rigid Paradise's "< void pair_set(const T& value) { for(auto action : value) { std::cout << " [" << action.first << "]: " << action.second<