aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authormanavrion <manavrion@yandex-team.ru>2022-02-10 16:49:16 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:49:16 +0300
commit29d0b2eeae154d04156e0698067c0c21a97ea61d (patch)
tree5d5cb817648f650d76cf1076100726fd9b8448e8 /util
parent109de9f4c31b6caaa736ce29a61fce05851e7c02 (diff)
downloadydb-29d0b2eeae154d04156e0698067c0c21a97ea61d.tar.gz
Restoring authorship annotation for <manavrion@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'util')
-rw-r--r--util/string/split.h36
-rw-r--r--util/string/vector.cpp10
-rw-r--r--util/string/vector.h80
3 files changed, 63 insertions, 63 deletions
diff --git a/util/string/split.h b/util/string/split.h
index 153f5c2ef3..bc46d9e64c 100644
--- a/util/string/split.h
+++ b/util/string/split.h
@@ -22,20 +22,20 @@
// NOTE: Check StringSplitter below to get more convenient split string interface.
namespace NStringSplitPrivate {
-
- template <class T, class I, class = void>
+
+ template <class T, class I, class = void>
struct TIsConsumer: std::false_type {};
-
- template <class T, class I>
- struct TIsConsumer<
- T, I,
- TVoidT<decltype(std::declval<T>().Consume(
- std::declval<I>(), std::declval<I>(), std::declval<I>()))>>
- : std::true_type {};
-
- template <class T, class I>
- constexpr bool TIsConsumerV = TIsConsumer<T, I>::value;
-
+
+ template <class T, class I>
+ struct TIsConsumer<
+ T, I,
+ TVoidT<decltype(std::declval<T>().Consume(
+ std::declval<I>(), std::declval<I>(), std::declval<I>()))>>
+ : std::true_type {};
+
+ template <class T, class I>
+ constexpr bool TIsConsumerV = TIsConsumer<T, I>::value;
+
template <class T>
T* Find(T* str, std::common_type_t<T> ch) {
for (; *str; ++str) {
@@ -47,11 +47,11 @@ namespace NStringSplitPrivate {
return nullptr;
}
-}
-
+}
+
template <class I, class TDelim, class TConsumer>
std::enable_if_t<::NStringSplitPrivate::TIsConsumerV<TConsumer, I>>
-SplitString(I b, I e, const TDelim& d, TConsumer&& c) {
+SplitString(I b, I e, const TDelim& d, TConsumer&& c) {
I l, i;
do {
@@ -62,7 +62,7 @@ SplitString(I b, I e, const TDelim& d, TConsumer&& c) {
template <class I, class TDelim, class TConsumer>
std::enable_if_t<::NStringSplitPrivate::TIsConsumerV<TConsumer, I>>
-SplitString(I b, const TDelim& d, TConsumer&& c) {
+SplitString(I b, const TDelim& d, TConsumer&& c) {
I l, i;
do {
@@ -404,7 +404,7 @@ static inline void Split(char* buf, char ch, T* res) {
TCharDelimiter<char> delim(ch);
TSimplePusher<T> pusher = {res};
- SplitString(buf, delim, pusher);
+ SplitString(buf, delim, pusher);
}
/// Split string into res vector. Res vector is cleared before split.
diff --git a/util/string/vector.cpp b/util/string/vector.cpp
index 8d668d8f3d..9ba401f0a2 100644
--- a/util/string/vector.cpp
+++ b/util/string/vector.cpp
@@ -46,7 +46,7 @@ static inline void DoSplit0(C* res, const TBasicStringBuf<TChr> str, TDelim& d,
}
template <typename TChr>
-static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar16>::value, TUtf16String, TString>>* res,
+static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar16>::value, TUtf16String, TString>>* res,
const TBasicStringBuf<TChr> str, const TChr* delim, size_t maxFields, int options) {
if (!*delim) {
return;
@@ -63,19 +63,19 @@ static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar
}
}
-void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, const char* delim, size_t maxFields, int options) {
+void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, const char* delim, size_t maxFields, int options) {
return SplitStringImplT<char>(res, TStringBuf(ptr), delim, maxFields, options);
}
-void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len, const char* delim, size_t maxFields, int options) {
+void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len, const char* delim, size_t maxFields, int options) {
return SplitStringImplT<char>(res, TStringBuf(ptr, len), delim, maxFields, options);
}
-void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, const wchar16* delimiter, size_t maxFields, int options) {
+void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, const wchar16* delimiter, size_t maxFields, int options) {
return SplitStringImplT<wchar16>(res, TWtringBuf(ptr), delimiter, maxFields, options);
}
-void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len, const wchar16* delimiter, size_t maxFields, int options) {
+void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len, const wchar16* delimiter, size_t maxFields, int options) {
return SplitStringImplT<wchar16>(res, TWtringBuf(ptr, len), delimiter, maxFields, options);
}
diff --git a/util/string/vector.h b/util/string/vector.h
index 392c12cbb8..e36c348bbe 100644
--- a/util/string/vector.h
+++ b/util/string/vector.h
@@ -15,54 +15,54 @@
//
// NOTE: Check StringSplitter below to get more convenient split string interface.
-namespace NPrivate {
-
- void SplitStringImpl(TVector<TString>* res, const char* ptr,
- const char* delimiter, size_t maxFields, int options);
- void SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len,
- const char* delimiter, size_t maxFields, int options);
-
- void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr,
- const wchar16* delimiter, size_t maxFields, int options);
- void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len,
- const wchar16* delimiter, size_t maxFields, int options);
-
- template <typename C>
- struct TStringDeducer;
-
- template <>
- struct TStringDeducer<char> {
- using type = TString;
- };
-
- template <>
- struct TStringDeducer<wchar16> {
- using type = TUtf16String;
- };
-}
-
-template <typename C>
-TVector<typename ::NPrivate::TStringDeducer<C>::type>
-SplitString(const C* ptr, const C* delimiter,
- size_t maxFields = 0, int options = 0) {
- TVector<typename ::NPrivate::TStringDeducer<C>::type> res;
+namespace NPrivate {
+
+ void SplitStringImpl(TVector<TString>* res, const char* ptr,
+ const char* delimiter, size_t maxFields, int options);
+ void SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len,
+ const char* delimiter, size_t maxFields, int options);
+
+ void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr,
+ const wchar16* delimiter, size_t maxFields, int options);
+ void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len,
+ const wchar16* delimiter, size_t maxFields, int options);
+
+ template <typename C>
+ struct TStringDeducer;
+
+ template <>
+ struct TStringDeducer<char> {
+ using type = TString;
+ };
+
+ template <>
+ struct TStringDeducer<wchar16> {
+ using type = TUtf16String;
+ };
+}
+
+template <typename C>
+TVector<typename ::NPrivate::TStringDeducer<C>::type>
+SplitString(const C* ptr, const C* delimiter,
+ size_t maxFields = 0, int options = 0) {
+ TVector<typename ::NPrivate::TStringDeducer<C>::type> res;
::NPrivate::SplitStringImpl(&res, ptr, delimiter, maxFields, options);
return res;
}
-template <typename C>
-TVector<typename ::NPrivate::TStringDeducer<C>::type>
-SplitString(const C* ptr, size_t len, const C* delimiter,
- size_t maxFields = 0, int options = 0) {
- TVector<typename ::NPrivate::TStringDeducer<C>::type> res;
+template <typename C>
+TVector<typename ::NPrivate::TStringDeducer<C>::type>
+SplitString(const C* ptr, size_t len, const C* delimiter,
+ size_t maxFields = 0, int options = 0) {
+ TVector<typename ::NPrivate::TStringDeducer<C>::type> res;
::NPrivate::SplitStringImpl(&res, ptr, len, delimiter, maxFields, options);
return res;
}
-template <typename C>
-TVector<typename ::NPrivate::TStringDeducer<C>::type>
-SplitString(const typename ::NPrivate::TStringDeducer<C>::type& str, const C* delimiter,
- size_t maxFields = 0, int options = 0) {
+template <typename C>
+TVector<typename ::NPrivate::TStringDeducer<C>::type>
+SplitString(const typename ::NPrivate::TStringDeducer<C>::type& str, const C* delimiter,
+ size_t maxFields = 0, int options = 0) {
return SplitString(str.data(), str.size(), delimiter, maxFields, options);
}