aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2016-09-17 06:05:33 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2016-09-17 07:17:42 -0700
commit93423dfd7de7fe0b7f733784516617622578cba6 (patch)
treef4164235cd72a7d5be8924c8e52f899450f797e0
parent11bcb616288cbb347fed566bd5bdd0d1923e88b6 (diff)
Add a str_util::ConsumeSuffix() utility function.
Change: 133476675
-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);