summaryrefslogtreecommitdiff
path: root/src/libcamera/include/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/include/utils.h')
-rw-r--r--src/libcamera/include/utils.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/utils.h
index e467eb21..080ea661 100644
--- a/src/libcamera/include/utils.h
+++ b/src/libcamera/include/utils.h
@@ -108,6 +108,40 @@ inline _hex hex<uint64_t>(uint64_t value, unsigned int width)
size_t strlcpy(char *dst, const char *src, size_t size);
+namespace details {
+
+class StringSplitter
+{
+public:
+ StringSplitter(const std::string &str, const std::string &delim);
+
+ class iterator
+ {
+ public:
+ iterator(const StringSplitter *ss, std::string::size_type pos);
+
+ iterator &operator++();
+ std::string operator*() const;
+ bool operator!=(const iterator &other) const;
+
+ private:
+ const StringSplitter *ss_;
+ std::string::size_type pos_;
+ std::string::size_type next_;
+ };
+
+ iterator begin() const;
+ iterator end() const;
+
+private:
+ std::string str_;
+ std::string delim_;
+};
+
+} /* namespace details */
+
+details::StringSplitter split(const std::string &str, const std::string &delim);
+
} /* namespace utils */
} /* namespace libcamera */