Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

67 linhas
1.1 KiB

há 5 anos
  1. #pragma once
  2. #include <string>
  3. #include <sstream>
  4. #include <chrono>
  5. #include <iostream>
  6. namespace display
  7. {
  8. inline std::string escape_csv(const std::string& value)
  9. {
  10. std::stringstream ret;
  11. ret<<"\"";
  12. for(auto v : value)
  13. {
  14. switch(v)
  15. {
  16. case '\n':
  17. ret << "\\n";
  18. break;
  19. case '\t':
  20. ret << "\\t";
  21. break;
  22. case '"':
  23. ret << "\\\"";
  24. break;
  25. default:
  26. ret << v;
  27. break;
  28. }
  29. }
  30. ret<<"\"";
  31. return ret.str();
  32. }
  33. inline std::string to_string(std::chrono::seconds v)
  34. {
  35. std::stringstream ret;
  36. ret << v.count() << " second" << (v.count()!=1?"s":"");
  37. return ret.str();
  38. }
  39. inline std::string to_string(std::chrono::minutes v)
  40. {
  41. std::stringstream ret;
  42. ret << v.count() << " minute" << (v.count()!=1?"s":"");
  43. return ret.str();
  44. }
  45. inline void header(std::string app_name)
  46. {
  47. std::cout << "\033[2J" << "\033[1;1H";
  48. std::cout << "Rigid Paradise's "<<app_name<<std::endl;
  49. }
  50. template<typename T>
  51. void pair_set(const T& value)
  52. {
  53. for(auto action : value)
  54. {
  55. std::cout << " [" << action.first << "]: " << action.second<<std::endl;
  56. }
  57. }
  58. }