#pragma once #include #include inline auto terminal_size() { struct winsize result{}; ioctl(STDOUT_FILENO, TIOCGWINSZ, &result); return std::make_tuple(result.ws_col, result.ws_row); } template std::basic_ostream& hr(std::basic_ostream& os) { auto [width, height] = terminal_size(); os << std::setfill('-') << std::setw(width) << "\n" << std::setfill(' ') << std::setw(0); return os; }