polybar-dwm/include/utils/string.hpp

50 lines
1.7 KiB
C++
Raw Normal View History

#pragma once
2016-05-19 14:41:06 +00:00
2016-06-15 03:32:35 +00:00
#include <sstream>
2016-05-19 14:41:06 +00:00
2016-06-15 03:32:35 +00:00
#include "common.hpp"
2016-05-19 14:41:06 +00:00
2016-11-19 05:22:44 +00:00
POLYBAR_NS
2016-05-19 14:41:06 +00:00
2016-06-15 03:32:35 +00:00
namespace string_util {
/**
* Hash type
*/
using hash_type = unsigned long;
2016-11-02 19:22:45 +00:00
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);
2017-01-12 19:28:44 +00:00
2016-12-23 04:18:58 +00:00
string replace(const string& haystack, const string& needle, const string& replacement, size_t start = 0,
size_t end = string::npos);
2016-12-23 04:18:58 +00:00
string replace_all(const string& haystack, const string& needle, const string& replacement, size_t start = 0,
size_t end = string::npos);
2017-01-12 19:28:44 +00:00
2016-11-02 19:22:45 +00:00
string squeeze(const string& haystack, char needle);
2017-01-12 19:28:44 +00:00
2016-11-02 19:22:45 +00:00
string strip(const string& haystack, char needle);
string strip_trailing_newline(const string& haystack);
2017-01-12 19:28:44 +00:00
string ltrim(string&& value, const char& needle);
string rtrim(string&& value, const char& needle);
string trim(string&& value, const char& needle);
2017-01-12 19:28:44 +00:00
string join(const vector<string>& strs, const string& delim);
2016-11-25 12:55:15 +00:00
vector<string>& split_into(const string& s, char delim, vector<string>& container);
2016-11-02 19:22:45 +00:00
vector<string> split(const string& s, char delim);
2017-01-12 19:28:44 +00:00
2016-11-25 12:55:15 +00:00
size_t find_nth(const string& haystack, size_t pos, const string& needle, size_t nth);
2017-01-12 19:28:44 +00:00
string floating_point(double value, size_t precision, bool fixed = false, const string& locale = "");
string filesize_mb(unsigned long long kbytes, size_t precision = 0, const string& locale = "");
string filesize_gb(unsigned long long kbytes, size_t precision = 0, const string& locale = "");
string filesize(unsigned long long bytes, size_t precision = 0, bool fixed = false, const string& locale = "");
2016-11-02 19:22:45 +00:00
string from_stream(const std::basic_ostream<char>& os);
2016-11-25 12:55:15 +00:00
hash_type hash(const string& src);
2016-05-19 14:41:06 +00:00
}
2016-06-15 03:32:35 +00:00
2016-11-19 05:22:44 +00:00
POLYBAR_NS_END