namespace Utils { const char *VA(const char *fmt, ...); std::string StrToLower(std::string input); bool EndsWith(const char* heystack, const char* needle); std::vector Explode(const std::string& str, char delim); void Replace(std::string &string, std::string find, std::string replace); unsigned int OneAtATime(char *key, size_t len); class InfoString { public: InfoString() {}; InfoString(std::string buffer) :InfoString() { this->Parse(buffer); }; InfoString(const InfoString &obj) { this->KeyValuePairs = obj.KeyValuePairs; }; void Set(std::string key, std::string value); std::string Get(std::string key); std::string Build(); void Dump(); private: std::map KeyValuePairs; void Parse(std::string buffer); }; }