polybar-dwm/include/utils/string.hpp
2016-11-25 14:17:41 +01:00

40 lines
1.6 KiB
C++

#pragma once
#include <sstream>
#include "common.hpp"
POLYBAR_NS
namespace string_util {
/**
* Hash type
*/
using hash_type = unsigned long;
bool contains(const string& haystack, const string& needle);
string upper(const string& s);
string lower(const string& s);
bool compare(const string& s1, const string& s2);
string replace(const string& haystack, string needle, string repl, size_t start = 0, size_t end = string::npos);
string replace_all(const string& haystack, string needle, string repl, size_t start = 0, size_t end = string::npos);
string replace_all_bounded(const string& haystack, string needle, string replacement, size_t min, size_t max,
size_t start = 0, size_t end = string::npos);
string squeeze(const string& haystack, char needle);
string strip(const string& haystack, char needle);
string strip_trailing_newline(const string& haystack);
string ltrim(const string& haystack, char needle);
string rtrim(const string& haystack, char needle);
string trim(const string& haystack, char needle);
string join(vector<string> strs, string delim);
vector<string>& split_into(string s, char delim, vector<string>& container);
vector<string> split(const string& s, char delim);
size_t find_nth(string haystack, size_t pos, string needle, size_t nth);
string floatval(float value, int decimals = 2, bool fixed = false, string locale = "");
string filesize(unsigned long long bytes, int decimals = 2, bool fixed = false, string locale = "");
string from_stream(const std::basic_ostream<char>& os);
hash_type hash(string src);
}
POLYBAR_NS_END