// // Copyright 2015 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // string_utils: // String helper functions. // #ifndef LIBANGLE_STRING_UTILS_H_ #define LIBANGLE_STRING_UTILS_H_ #include <string> #include <vector> #include "common/Optional.h" namespace angle { extern const char kWhitespaceASCII[]; enum WhitespaceHandling { KEEP_WHITESPACE, TRIM_WHITESPACE, }; enum SplitResult { SPLIT_WANT_ALL, SPLIT_WANT_NONEMPTY, }; std::vector<std::string> SplitString(const std::string &input, const std::string &delimiters, WhitespaceHandling whitespace, SplitResult resultType); void SplitStringAlongWhitespace(const std::string &input, std::vector<std::string> *tokensOut); std::string TrimString(const std::string &input, const std::string &trimChars); bool HexStringToUInt(const std::string &input, unsigned int *uintOut); bool ReadFileToString(const std::string &path, std::string *stringOut); Optional<std::vector<wchar_t>> WidenString(size_t length, const char *cString); // Check if the string str begins with the given prefix. // Prefix may not be NULL and needs to be NULL terminated. // The comparison is case sensitive. bool BeginsWith(const std::string &str, const char *prefix); // Check if the string str begins with the given prefix. // str and prefix may not be NULL and need to be NULL terminated. // The comparison is case sensitive. bool BeginsWith(const char *str, const char *prefix); // Check if the string str ends with the given suffix. // Suffix may not be NUL and needs to be NULL terminated. // The comparison is case sensitive. bool EndsWith(const std::string& str, const char* suffix); } #endif // LIBANGLE_STRING_UTILS_H_