| // |
| // 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); |
| } |
| |
| #endif // LIBANGLE_STRING_UTILS_H_ |