/* 
 * Mirai. Copyright (C) 2024 Vyn
 * This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only)
 * The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
 */

#ifndef CPP_UTILS_STRING_H
#define CPP_UTILS_STRING_H

#include <algorithm>
#include <string>

namespace cpputils::string {

	inline std::string trim(std::string str) {
		str.erase(str.begin(), std::ranges::find_if(str, [](unsigned char ch) {
			return !std::isspace(ch);
		}));
		str.erase(std::ranges::find_if(str.rbegin(), str.rend(), [](unsigned char ch) {
			return !std::isspace(ch);
		}).base(), str.end());
		return str;
	}

}

#endif
