| 62 | } |
| 63 | |
| 64 | void Split(const std::string& text, const std::string& delims, |
| 65 | std::function<void(std::string&&)> Func) { |
| 66 | size_t token_start = 0; |
| 67 | if (text.empty()) { return; } |
| 68 | for (size_t i = 0; i < text.size() + 1; ++i) { |
| 69 | if ((i == text.size()) || (delims.find(text[i]) != std::string::npos)) { |
| 70 | Func(text.substr(token_start, i - token_start)); |
| 71 | token_start = i + 1; |
| 72 | } |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | std::string Dirname(const std::string& path) { |
| 77 | size_t found = path.rfind('/'); |
no test coverage detected