view include/animone/util.h @ 29:40fd3776ce9b

cmake: we are not "animia" anymore
author Paper <paper@tflc.us>
date Sun, 09 Feb 2025 23:15:55 -0500
parents 27b988a1048c
children a76e55e098d1
line wrap: on
line source

#ifndef ANIMONE_ANIMONE_UTIL_H_
#define ANIMONE_ANIMONE_UTIL_H_

#include <sstream>
#include <string>

namespace animone::internal::util {

bool ReadFile(const std::string& path, std::string& data);
bool EqualStrings(const std::string& str1, const std::string& str2);
bool Stem(const std::string& filename, std::string& stem);
bool CheckPattern(const std::string& pattern, const std::string& str);
bool TrimLeft(std::string& str, const char* chars);
bool TrimRight(std::string& str, const char* chars);

template<typename T = int, std::enable_if_t<std::is_integral<T>::value, bool> = true>
T StringToInt(const std::string& str, T def = 0) {
	std::istringstream s(str);
	s >> std::noboolalpha >> def;
	return def;
}

} // namespace animone::internal::util

#endif // ANIMONE_ANIMONE_UTIL_H_