diff options
author | vkap <[email protected]> | 2022-02-10 16:52:03 +0300 |
---|---|---|
committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:52:03 +0300 |
commit | 8adaf54035169f30420bfba09aad86a04c0ab068 (patch) | |
tree | ab7fbbf3253d4c0e2793218f09378908beb025fb /util/string/strip.h | |
parent | 2293cfbde84d06fd05df2d8b5e84a0f58c6b827e (diff) |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'util/string/strip.h')
-rw-r--r-- | util/string/strip.h | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/util/string/strip.h b/util/string/strip.h index 4085d25d08d..d5ef6da96db 100644 --- a/util/string/strip.h +++ b/util/string/strip.h @@ -6,62 +6,62 @@ #include <util/generic/strbuf.h> #include <utility> -template <class It> -struct TIsAsciiSpaceAdapter { +template <class It> +struct TIsAsciiSpaceAdapter { bool operator()(const It& it) const noexcept { - return IsAsciiSpace(*it); - } -}; - -template <class It> -TIsAsciiSpaceAdapter<It> IsAsciiSpaceAdapter(It) { + return IsAsciiSpace(*it); + } +}; + +template <class It> +TIsAsciiSpaceAdapter<It> IsAsciiSpaceAdapter(It) { return {}; -} - -template <class TChar> -struct TEqualsStripAdapter { - TEqualsStripAdapter(TChar ch) - : Ch(ch) - { - } - - template <class It> +} + +template <class TChar> +struct TEqualsStripAdapter { + TEqualsStripAdapter(TChar ch) + : Ch(ch) + { + } + + template <class It> bool operator()(const It& it) const noexcept { - return *it == Ch; - } - + return *it == Ch; + } + const TChar Ch; -}; - -template <class TChar> -TEqualsStripAdapter<TChar> EqualsStripAdapter(TChar ch) { +}; + +template <class TChar> +TEqualsStripAdapter<TChar> EqualsStripAdapter(TChar ch) { return {ch}; -} - +} + template <class It, class TStripCriterion> inline void StripRangeBegin(It& b, const It& e, TStripCriterion&& criterion) noexcept { - while (b < e && criterion(b)) { + while (b < e && criterion(b)) { ++b; } } template <class It> inline void StripRangeBegin(It& b, const It& e) noexcept { - StripRangeBegin(b, e, IsAsciiSpaceAdapter(b)); -} - + StripRangeBegin(b, e, IsAsciiSpaceAdapter(b)); +} + template <class It, class TStripCriterion> inline void StripRangeEnd(const It& b, It& e, TStripCriterion&& criterion) noexcept { - while (b < e && criterion(e - 1)) { + while (b < e && criterion(e - 1)) { --e; } } template <class It> inline void StripRangeEnd(const It& b, It& e) noexcept { - StripRangeEnd(b, e, IsAsciiSpaceAdapter(b)); -} - + StripRangeEnd(b, e, IsAsciiSpaceAdapter(b)); +} + template <bool stripBeg, bool stripEnd> struct TStripImpl { template <class It, class TStripCriterion> @@ -116,9 +116,9 @@ inline bool StripRange(It& b, It& e, TStripCriterion&& criterion) noexcept { template <class It> inline bool StripRange(It& b, It& e) noexcept { - return StripRange(b, e, IsAsciiSpaceAdapter(b)); -} - + return StripRange(b, e, IsAsciiSpaceAdapter(b)); +} + template <class It, class TStripCriterion> inline bool Strip(It& b, size_t& len, TStripCriterion&& criterion) noexcept { It e = b + len; @@ -132,31 +132,31 @@ inline bool Strip(It& b, size_t& len, TStripCriterion&& criterion) noexcept { return false; } -template <class It> +template <class It> inline bool Strip(It& b, size_t& len) noexcept { - return Strip(b, len, IsAsciiSpaceAdapter(b)); -} - + return Strip(b, len, IsAsciiSpaceAdapter(b)); +} + template <class T, class TStripCriterion> static inline bool StripString(const T& from, T& to, TStripCriterion&& criterion) { return TStripImpl<true, true>::StripString(from, to, criterion); } template <class T> -static inline bool StripString(const T& from, T& to) { - return StripString(from, to, IsAsciiSpaceAdapter(from.begin())); -} - +static inline bool StripString(const T& from, T& to) { + return StripString(from, to, IsAsciiSpaceAdapter(from.begin())); +} + template <class T, class TStripCriterion> static inline T StripString(const T& from, TStripCriterion&& criterion) { return TStripImpl<true, true>::StripString(from, criterion); } -template <class T> -static inline T StripString(const T& from) { +template <class T> +static inline T StripString(const T& from) { return TStripImpl<true, true>::StripString(from); -} - +} + template <class T> static inline T StripStringLeft(const T& from) { return TStripImpl<true, false>::StripString(from); |