about summary refs log tree commit diff
path: root/third_party/nix/src/libutil/util.hh
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2020-05-25T00·19+0100
committerVincent Ambo <tazjin@google.com>2020-05-25T00·19+0100
commit98299da0fda612b42ab933c47f18163cfef5fa71 (patch)
tree78fc0f1127b5f2336d3e370f342f72f38d5a5ee2 /third_party/nix/src/libutil/util.hh
parentb371821db59d33851d521d66ba1fb126d388c00f (diff)
refactor(3p/nix/libutil): Replace string2Int & trim functions r/843
Replaces these functions with corresponding functions from Abseil,
namely absl::StripAsciiWhitespace and absl::SimpleAtoi.

In the course of doing this some minor things I encountered along the
way were also refactored.

This also changes the signatures of the various custom readFile
functions to use absl::string_view types.
Diffstat (limited to 'third_party/nix/src/libutil/util.hh')
-rw-r--r--third_party/nix/src/libutil/util.hh19
1 files changed, 3 insertions, 16 deletions
diff --git a/third_party/nix/src/libutil/util.hh b/third_party/nix/src/libutil/util.hh
index 7d10df50bf5b..0f3752dfde5a 100644
--- a/third_party/nix/src/libutil/util.hh
+++ b/third_party/nix/src/libutil/util.hh
@@ -8,6 +8,7 @@
 #include <optional>
 #include <sstream>
 
+#include <absl/strings/string_view.h>
 #include <dirent.h>
 #include <signal.h>
 #include <sys/stat.h>
@@ -97,8 +98,8 @@ unsigned char getFileType(const Path& path);
 
 /* Read the contents of a file into a string. */
 std::string readFile(int fd);
-std::string readFile(const Path& path, bool drain = false);
-void readFile(const Path& path, Sink& sink);
+std::string readFile(absl::string_view path, bool drain = false);
+void readFile(absl::string_view path, Sink& sink);
 
 /* Write a string to a file. */
 void writeFile(const Path& path, const std::string& s, mode_t mode = 0666);
@@ -325,10 +326,6 @@ C tokenizeString(const std::string& s,
 std::string concatStringsSep(const std::string& sep, const Strings& ss);
 std::string concatStringsSep(const std::string& sep, const StringSet& ss);
 
-/* Remove whitespace from the start and end of a string. */
-std::string trim(const std::string& s,
-                 const std::string& whitespace = " \n\r\t");
-
 /* Replace all occurrences of a string inside another string. */
 std::string replaceStrings(const std::string& s, const std::string& from,
                            const std::string& to);
@@ -339,16 +336,6 @@ std::string statusToString(int status);
 
 bool statusOk(int status);
 
-/* Parse a string into an integer. */
-template <class N>
-bool string2Int(const std::string& s, N& n) {
-  if (std::string(s, 0, 1) == "-" && !std::numeric_limits<N>::is_signed)
-    return false;
-  std::istringstream str(s);
-  str >> n;
-  return str && str.get() == EOF;
-}
-
 /* Parse a string into a float. */
 template <class N>
 bool string2Float(const std::string& s, N& n) {