浏览代码

AK: Add String::find_last() and inline String::find() methods

This adds the String::find_last() as wrapper for StringUtils::find_last,
which is another step in harmonizing the String and StringView APIs
where possible.

This also inlines the find() methods, as they are simple wrappers around
StringUtils functions without any additional logic.
Max Wipfli 4 年之前
父节点
当前提交
268d81a56c
共有 2 个文件被更改,包括 4 次插入12 次删除
  1. 0 10
      AK/String.cpp
  2. 4 2
      AK/String.h

+ 0 - 10
AK/String.cpp

@@ -459,14 +459,4 @@ String String::vformatted(StringView fmtstr, TypeErasedFormatParams params)
     return builder.to_string();
     return builder.to_string();
 }
 }
 
 
-Optional<size_t> String::find(char c, size_t start) const
-{
-    return find(StringView { &c, 1 }, start);
-}
-
-Optional<size_t> String::find(StringView const& view, size_t start) const
-{
-    return StringUtils::find(*this, view, start);
-}
-
 }
 }

+ 4 - 2
AK/String.h

@@ -141,8 +141,10 @@ public:
     [[nodiscard]] Vector<String> split_limit(char separator, size_t limit, bool keep_empty = false) const;
     [[nodiscard]] Vector<String> split_limit(char separator, size_t limit, bool keep_empty = false) const;
     [[nodiscard]] Vector<String> split(char separator, bool keep_empty = false) const;
     [[nodiscard]] Vector<String> split(char separator, bool keep_empty = false) const;
 
 
-    [[nodiscard]] Optional<size_t> find(char, size_t start = 0) const;
-    [[nodiscard]] Optional<size_t> find(StringView const&, size_t start = 0) const;
+    [[nodiscard]] Optional<size_t> find(char needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
+    [[nodiscard]] Optional<size_t> find(StringView const& needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
+    [[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
+    // FIXME: Implement find_last(StringView const&) for API symmetry.
     [[nodiscard]] Vector<size_t> find_all(StringView const& needle) const { return StringUtils::find_all(*this, needle); }
     [[nodiscard]] Vector<size_t> find_all(StringView const& needle) const { return StringUtils::find_all(*this, needle); }
 
 
     [[nodiscard]] String substring(size_t start) const;
     [[nodiscard]] String substring(size_t start) const;