cpp-common/bt2c: add `CStringView::startsWith`
[babeltrace.git] / src / cpp-common / bt2c / c-string-view.hpp
index 939c8a16455b014d1b5cca10168c75f99af2d7b8..0437cd65c4d87458ebe8eca1029d74e728201649 100644 (file)
@@ -176,11 +176,18 @@ public:
         return _mStr[i];
     }
 
+    bool startsWith(const bt2c::CStringView prefix) const noexcept
+    {
+        BT_ASSERT_DBG(_mStr);
+        BT_ASSERT_DBG(prefix);
+        return std::strncmp(_mStr, prefix, prefix.len()) == 0;
+    }
+
 private:
     const char *_mStr = nullptr;
 };
 
-static inline const char *format_as(const CStringView& str)
+inline const char *format_as(const CStringView& str)
 {
     return str ? *str : "(null)";
 }
@@ -240,7 +247,10 @@ bool operator==(LhsT&& lhs, RhsT&& rhs) noexcept
  *
  * Both `lhs` and `rhs` must not have an underlying `nullptr` raw data.
  */
-template <typename LhsT, typename RhsT>
+template <
+    typename LhsT, typename RhsT,
+    typename = typename std::enable_if<internal::ComparableWithCStringView<LhsT>::value>::type,
+    typename = typename std::enable_if<internal::ComparableWithCStringView<RhsT>::value>::type>
 bool operator!=(LhsT&& lhs, RhsT&& rhs) noexcept
 {
     return !(std::forward<LhsT>(lhs) == std::forward<RhsT>(rhs));
This page took 0.023239 seconds and 4 git commands to generate.