Browse Source

AK: Add String::starts_with to match String::ends_with

Conrad Pankoff 6 years ago
parent
commit
419e886497
2 changed files with 12 additions and 0 deletions
  1. 1 0
      AK/AKString.h
  2. 11 0
      AK/String.cpp

+ 1 - 0
AK/AKString.h

@@ -126,6 +126,7 @@ public:
         return (*m_impl)[i];
     }
 
+    bool starts_with(const StringView&) const;
     bool ends_with(const StringView&) const;
 
     bool operator==(const String&) const;

+ 11 - 0
AK/String.cpp

@@ -180,6 +180,17 @@ String String::format(const char* fmt, ...)
     return builder.to_string();
 }
 
+bool String::starts_with(const StringView& str) const
+{
+    if (str.is_empty())
+        return true;
+    if (is_empty())
+        return false;
+    if (str.length() > length())
+        return false;
+    return !memcmp(characters(), str.characters(), str.length());
+}
+
 bool String::ends_with(const StringView& str) const
 {
     if (str.is_empty())