| 2978 | } |
| 2979 | |
| 2980 | bool Find(const uint8_t* begin, const uint8_t* end, const uint8_t** separator_begin, |
| 2981 | const uint8_t** separator_end, const SplitPatternOptions& options) { |
| 2982 | re2::StringPiece piece(reinterpret_cast<const char*>(begin), |
| 2983 | std::distance(begin, end)); |
| 2984 | // "StringPiece is mutated to point to matched piece" |
| 2985 | re2::StringPiece result; |
| 2986 | if (!RE2::PartialMatch(piece, *regex_split, &result)) { |
| 2987 | return false; |
| 2988 | } |
| 2989 | *separator_begin = reinterpret_cast<const uint8_t*>(result.data()); |
| 2990 | *separator_end = reinterpret_cast<const uint8_t*>(result.data() + result.size()); |
| 2991 | return true; |
| 2992 | } |
| 2993 | |
| 2994 | bool FindReverse(const uint8_t* begin, const uint8_t* end, |
| 2995 | const uint8_t** separator_begin, const uint8_t** separator_end, |