Vuo  2.0.0
VuoStringUtilities.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <locale>
13 #include <set>
14 
19 {
20 public:
21  static bool beginsWith(string wholeString, string beginning);
22  static bool endsWith(string wholeString, string ending);
23  static string substrAfter(string wholeString, string beginning);
24  static string substrBefore(string wholeString, string ending);
25  static string replaceAll(string wholeString, char originalChar, char replacementChar);
26  static size_t replaceAll(string &wholeString, string originalSubstring, string replacementSubstring);
27  static vector<string> split(const string &wholeString, char delimiter);
28  static string join(vector<string> partialStrings, char delimiter);
29  static string join(vector<string> partialStrings, string delimiter);
30  static string join(set<string> partialStrings, string delimiter);
31  static string trim(string originalString);
32 
33  static string buildCompositionIdentifier(const string &parentCompositionIdentifier, const string &nodeIdentifier);
34  static string buildPortIdentifier(const string &nodeIdentifier, const string &portName);
35  static string prefixSymbolName(string symbolName, string moduleKey);
36  static bool isValidCharInIdentifier(char ch);
37  static string transcodeToIdentifier(string str);
38  static string transcodeToGraphvizIdentifier(const string &originalString);
39  static string transcodeFromGraphvizIdentifier(const string &graphvizIdentifier);
40  static string formUniqueIdentifier(set<string> &takenIdentifiers, const string &preferredIdentifier, const string &identifierPrefix = "");
41  static string formUniqueIdentifier(std::function<bool(const string &)> isIdentifierAvailable, const string &preferredIdentifier, const string &identifierPrefix = "");
42 
43  static string generateHtmlFromMarkdown(const string &markdownString);
44  static string generateHtmlFromMarkdownLine(const string &markdownString);
45 
46  static string convertToCamelCase(const string &originalString, bool capitalizeFirstLetter, bool forceFirstLetterToLower, bool forceInterveningLettersToLower,
47  bool allowSeparatorDots = false);
48  static string expandCamelCase(string camelCaseString);
49 
50  static string makeRandomHash(int length);
51 
55  static inline long hash(const string &s)
56  {
57  return collate.hash(s.data(), s.data() + s.length());
58  }
59 
60  static const std::locale locale;
61  static const std::collate<char> &collate;
62 };