view dep/animone/include/animone/util.h @ 285:65df2813d0de

dep/animone: header cleanup
author Paper <paper@paper.us.eu.org>
date Wed, 08 May 2024 16:43:32 -0400
parents 862d0d8619f6
children b1f625b0227c
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_