From d2bb681f96fb327b4c4d5b2b113692ca22fdffbf Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Mon, 31 Aug 2020 10:39:00 +0200 Subject: [PATCH] util: move HasPrefix() so it can be reused Move the function `HasPrefix()` from `netaddress.cpp` to `util/string.h` so it can be reused by `CNetAddr` methods (and possibly others). --- src/netaddress.cpp | 10 ++-------- src/util/string.h | 13 +++++++++++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/netaddress.cpp b/src/netaddress.cpp index b50cf7406..86fca451f 100644 --- a/src/netaddress.cpp +++ b/src/netaddress.cpp @@ -7,8 +7,9 @@ #include #include -#include #include +#include +#include #include #include @@ -50,13 +51,6 @@ void CNetAddr::SetIP(const CNetAddr& ipIn) m_addr = ipIn.m_addr; } -template -inline bool HasPrefix(const T1& obj, const std::array& prefix) -{ - return obj.size() >= PREFIX_LEN && - std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); -} - void CNetAddr::SetLegacyIPv6(Span ipv6) { assert(ipv6.size() == ADDR_IPV6_SIZE); diff --git a/src/util/string.h b/src/util/string.h index cdb41630c..a0c87bd00 100644 --- a/src/util/string.h +++ b/src/util/string.h @@ -7,6 +7,8 @@ #include +#include +#include #include #include #include @@ -74,4 +76,15 @@ std::string ToString(const T& t) return oss.str(); } +/** + * Check whether a container begins with the given prefix. + */ +template +NODISCARD inline bool HasPrefix(const T1& obj, + const std::array& prefix) +{ + return obj.size() >= PREFIX_LEN && + std::equal(std::begin(prefix), std::end(prefix), std::begin(obj)); +} + #endif // BITCOIN_UTIL_STRENCODINGS_H