#ifndef UTILS_HPP #define UTILS_HPP #include #include #include #define FILL_CHAR ' ' // wrapper around readFile2 func so we can avoid readFile and reuse one buffer, this should be faster and less bug prone? #define fastReadNum(path, val) readFile2(path, buf, sizeof(buf)); val = strtoll(buf, NULL, 10) enum JUST { RIGHT, LEFT }; // pretty prints num with given decs, 0 by default. its basically a macro so we inline it inline std::string pNum(auto num, uint8_t decs = 0) { return std::format("{:.{}f}", num, decs); } std::string pad(std::string s, uint8_t len, JUST j = JUST::RIGHT); std::string center(std::string str, uint8_t len); std::string pBytes(double bytes, bool isKbytes = false); std::string readFile(std::string path, size_t trim = 4096); ssize_t readFile2(std::string path, char* buffer, size_t maxlen); ssize_t readFile2(const char* path, char* buffer, size_t maxlen); int get_val(std::string_view target, std::string_view content); std::string getFirstDir(std::string_view path); #endif