summaryrefslogtreecommitdiff
path: root/adb/adb_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'adb/adb_utils.h')
-rw-r--r--adb/adb_utils.h13
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;
}