diff options
Diffstat (limited to 'adb/adb_utils.h')
-rw-r--r-- | adb/adb_utils.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/adb/adb_utils.h b/adb/adb_utils.h index a85ca8c84..5800a62f7 100644 --- a/adb/adb_utils.h +++ b/adb/adb_utils.h @@ -110,7 +110,7 @@ inline std::string_view StripTrailingNulls(std::string_view str) { // Base-10 stroll on a string_view. template <typename T> -inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining) { +inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining = nullptr) { if (str.empty() || !isdigit(str[0])) { return false; } @@ -135,6 +135,17 @@ inline bool ParseUint(T* result, std::string_view str, std::string_view* remaini *result = value; if (remaining) { *remaining = str.substr(it - str.begin()); + } else { + return it == str.end(); } + + return true; +} + +inline bool ConsumePrefix(std::string_view* str, std::string_view prefix) { + if (str->starts_with(prefix)) { + str->remove_prefix(prefix.size()); return true; + } + return false; } |