2023-05-20 00:01:54 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
|
|
// for clangd
|
|
|
|
|
|
|
|
|
|
namespace info::builtin {
|
|
|
|
|
|
|
|
|
|
template<typename T>
|
|
|
|
|
inline void Print(const T& value) { // only for strings ??
|
2023-05-22 22:02:31 +03:00
|
|
|
std::cout << "\x1b[1;32mOutput:\x1b[0m ";
|
|
|
|
|
std::cout << value;
|
|
|
|
|
std::cout << '\n';
|
2023-05-20 00:01:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template<typename T>
|
|
|
|
|
inline T Read() {
|
|
|
|
|
T value;
|
|
|
|
|
std::cout << "\x1b[1;32mInput:\x1b[0m ";
|
|
|
|
|
std::cin >> value;
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-03 19:05:50 +03:00
|
|
|
template<typename T>
|
|
|
|
|
inline void Error(const T& value) { // only for strings ??
|
|
|
|
|
std::cout << "\x1b[1;33mError:\x1b[0m ";
|
|
|
|
|
std::cout << value;
|
|
|
|
|
std::cout << '\n';
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-20 00:01:54 +03:00
|
|
|
} // namespace info
|