summaryrefslogtreecommitdiffstats
path: root/src/string_piece_util.h
diff options
context:
space:
mode:
authorTakuto Ikuta <tikuta@google.com>2017-04-26 07:10:27 (GMT)
committerTakuto Ikuta <tikuta@google.com>2017-04-26 08:27:54 (GMT)
commit08a3220bc2fe12e7f05967b317d221e0bc620be9 (patch)
tree3bf56ac3ae430b6e5c66e3bb93b74eec2f1db4f0 /src/string_piece_util.h
parent586bb6daef38b3657ba917eb3d7f07ba80c72cd7 (diff)
downloadNinja-08a3220bc2fe12e7f05967b317d221e0bc620be9.zip
Ninja-08a3220bc2fe12e7f05967b317d221e0bc620be9.tar.gz
Ninja-08a3220bc2fe12e7f05967b317d221e0bc620be9.tar.bz2
Add string_piece_util
Following functions are implemented for further performance optimization. * JoinStringPiece * SplitStringPiece * EqualsCaseInsensitiveASCII * ToLowerASCII To improve performance of CLParser, I will introduce above functions into include_normalize-win32.cc.
Diffstat (limited to 'src/string_piece_util.h')
-rw-r--r--src/string_piece_util.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/string_piece_util.h b/src/string_piece_util.h
new file mode 100644
index 0000000..2e40b9f
--- /dev/null
+++ b/src/string_piece_util.h
@@ -0,0 +1,34 @@
+// Copyright 2017 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef NINJA_STRINGPIECE_UTIL_H_
+#define NINJA_STRINGPIECE_UTIL_H_
+
+#include <string>
+#include <vector>
+
+#include "string_piece.h"
+using namespace std;
+
+vector<StringPiece> SplitStringPiece(StringPiece input, char sep);
+
+string JoinStringPiece(const vector<StringPiece>& list, char sep);
+
+inline char ToLowerASCII(char c) {
+ return (c >= 'A' && c <= 'Z') ? (c + ('a' - 'A')) : c;
+}
+
+bool EqualsCaseInsensitiveASCII(StringPiece a, StringPiece b);
+
+#endif // NINJA_STRINGPIECE_UTIL_H_