aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tensorflow/core/lib/strings/str_util.cc8
-rw-r--r--tensorflow/core/lib/strings/str_util.h4
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);