From 5250c229315dab9a6dbf68385dae88f561b0fbe1 Mon Sep 17 00:00:00 2001 From: наб Date: Thu, 14 Nov 2024 17:36:43 +0100 Subject: Move StringViewCompareFast to strutil.h --- apt-pkg/contrib/string_view.h | 11 ----------- apt-pkg/contrib/strutl.h | 26 +++++++++++++++++++------- 2 files changed, 19 insertions(+), 18 deletions(-) (limited to 'apt-pkg') diff --git a/apt-pkg/contrib/string_view.h b/apt-pkg/contrib/string_view.h index b062517b6..34a8e8a95 100644 --- a/apt-pkg/contrib/string_view.h +++ b/apt-pkg/contrib/string_view.h @@ -146,17 +146,6 @@ inline std::ostream& operator<<(std::ostream& os, const StringView& sv) return os << static_cast(sv); } -/** - * \brief Faster comparison for string views (compare size before data) - * - * Still stable, but faster than the normal ordering. */ -static inline int StringViewCompareFast(const std::string_view & a, const std::string_view & b) { - if (a.size() != b.size()) - return a.size() - b.size(); - - return a.compare(b); -} - static constexpr inline APT::StringView operator""_sv(const char *data, size_t size) { return APT::StringView(data, size); diff --git a/apt-pkg/contrib/strutl.h b/apt-pkg/contrib/strutl.h index 152477eee..90d9674fd 100644 --- a/apt-pkg/contrib/strutl.h +++ b/apt-pkg/contrib/strutl.h @@ -4,16 +4,16 @@ /* ###################################################################### String Util - These are some useful string functions - + _strstrip is a function to remove whitespace from the front and end of a string. - + This file had this historic note, but now includes further changes under the GPL-2.0+: This source is placed in the Public Domain, do with it what you will - It was originally written by Jason Gunthorpe - + It was originally written by Jason Gunthorpe + ##################################################################### */ /*}}}*/ #ifndef STRUTL_H @@ -26,6 +26,7 @@ #include #include #include +#include #include #include "macros.h" @@ -121,13 +122,13 @@ APT_PUBLIC std::vector VectorizeString(std::string const &haystack, * * \param maxsplit (optional) The maximum amount of splitting that * should be done . - * + * * The optional "maxsplit" argument can be used to limit the splitting, * if used the string is only split on maxsplit places and the last * item in the vector contains the remainder string. */ APT_PUBLIC std::vector StringSplit(std::string const &input, - std::string const &sep, + std::string const &sep, unsigned int maxsplit=std::numeric_limits::max()) APT_PURE; @@ -229,7 +230,7 @@ class APT_PUBLIC URI std::string Host; std::string Path; unsigned int Port; - + operator std::string(); inline void operator =(const std::string &From) {CopyFrom(From);} inline bool empty() {return Access.empty();}; @@ -258,4 +259,15 @@ struct RxChoiceList APT_PUBLIC unsigned long RegexChoice(RxChoiceList *Rxs,const char **ListBegin, const char **ListEnd); +/** + * \brief Faster comparison for string views (compare size before data) + * + * Still stable, but faster than the normal ordering. */ +static inline int StringViewCompareFast(const std::string_view & a, const std::string_view & b) { + if (a.size() != b.size()) + return a.size() - b.size(); + + return a.compare(b); +} + #endif -- cgit v1.2.3-70-g09d2