| 136 | } |
| 137 | |
| 138 | Status ValidateAbstractPath(std::string_view path) { |
| 139 | auto pos = path.find_first_of(kSep); |
| 140 | while (pos != path.npos) { |
| 141 | ++pos; |
| 142 | if (path.length() > pos && path[pos] == kSep) { |
| 143 | return Status::Invalid("Empty path component"); |
| 144 | } |
| 145 | pos = path.find_first_of(kSep, pos); |
| 146 | } |
| 147 | return Status::OK(); |
| 148 | } |
| 149 | |
| 150 | std::string ConcatAbstractPath(std::string_view base, std::string_view stem) { |
| 151 | DCHECK(!stem.empty()); |