diff options
-rw-r--r-- | tensorflow/core/lib/strings/str_util.cc | 8 | ||||
-rw-r--r-- | tensorflow/core/lib/strings/str_util.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/tensorflow/core/lib/strings/str_util.cc b/tensorflow/core/lib/strings/str_util.cc index 3a1c57f578..c3627d4286 100644 --- a/tensorflow/core/lib/strings/str_util.cc +++ b/tensorflow/core/lib/strings/str_util.cc @@ -279,6 +279,14 @@ bool ConsumePrefix(StringPiece* s, StringPiece expected) { return false; } +bool ConsumeSuffix(StringPiece* s, StringPiece expected) { + if (s->ends_with(expected)) { + s->remove_suffix(expected.size()); + return true; + } + return false; +} + bool ConsumeLeadingDigits(StringPiece* s, uint64* val) { const char* p = s->data(); const char* limit = p + s->size(); diff --git a/tensorflow/core/lib/strings/str_util.h b/tensorflow/core/lib/strings/str_util.h index 9dd1ede8dc..5f42c2cfcd 100644 --- a/tensorflow/core/lib/strings/str_util.h +++ b/tensorflow/core/lib/strings/str_util.h @@ -71,6 +71,10 @@ bool ConsumeNonWhitespace(StringPiece* s, StringPiece* val); // Otherwise, return false. bool ConsumePrefix(StringPiece* s, StringPiece expected); +// If "*s" ends with "expected", remove it and return true. +// Otherwise, return false. +bool ConsumeSuffix(StringPiece* s, StringPiece expected); + // Return lower-cased version of s. string Lowercase(StringPiece s); |