| 107 | // is valid. |
| 108 | template <typename Predicate> |
| 109 | std::vector<StringPiece> Split(const string& str, const string& delimiter, |
| 110 | Predicate predicate) { |
| 111 | if (str.empty()) { |
| 112 | return std::vector<StringPiece>(); |
| 113 | } |
| 114 | if (delimiter.empty()) { |
| 115 | std::vector<StringPiece> result; |
| 116 | result.resize(str.size()); |
| 117 | for (size_t i = 0; i < str.size(); ++i) { |
| 118 | result[i] = StringPiece(str.data() + i, 1); |
| 119 | } |
| 120 | return result; |
| 121 | } |
| 122 | if (delimiter.size() == 1) { |
| 123 | return SplitOnChar(str, delimiter[0], predicate); |
| 124 | } |
| 125 | return SplitOnCharSet(str, delimiter, predicate); |
| 126 | } |
| 127 | |
| 128 | std::vector<StringPiece> SplitV2(const string& str, StringPiece sep, |
| 129 | int maxsplit) { |
no test coverage detected