diff --git a/src/ripple/basics/Slice.h b/src/ripple/basics/Slice.h index 51a40cc701..15c39305fc 100644 --- a/src/ripple/basics/Slice.h +++ b/src/ripple/basics/Slice.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include // @@ -142,6 +143,9 @@ make_Slice (std::basic_string const& s) return Slice(s.data(), s.size()); } +std::string +strHex (Slice const& slice); + } // ripple #endif diff --git a/src/ripple/basics/impl/strHex.cpp b/src/ripple/basics/impl/strHex.cpp index dec02640f4..6a83423385 100644 --- a/src/ripple/basics/impl/strHex.cpp +++ b/src/ripple/basics/impl/strHex.cpp @@ -18,6 +18,8 @@ //============================================================================== #include +#include +#include #include namespace ripple { @@ -50,4 +52,10 @@ int charUnHex (unsigned char c) return xtab[c]; } +std::string +strHex(Slice const& slice) +{ + return strHex(slice.data(), slice.size()); +} + } diff --git a/src/ripple/basics/strHex.h b/src/ripple/basics/strHex.h index ea58f8014e..3c14ea3939 100644 --- a/src/ripple/basics/strHex.h +++ b/src/ripple/basics/strHex.h @@ -64,22 +64,18 @@ charUnHex (char c) // NIKB TODO cleanup this function and reduce the need for the many overloads // it has in various places. -template -std::string strHex (Iterator first, int iSize) +template +std::string strHex (FwdIt first, int size) { - std::string strDst; - - strDst.resize (iSize * 2); - - for (int i = 0; i < iSize; i++) + std::string s; + s.resize (size * 2); + for (int i = 0; i < size; i++) { unsigned char c = *first++; - - strDst[i * 2] = charHex (c >> 4); - strDst[i * 2 + 1] = charHex (c & 15); + s[i * 2] = charHex (c >> 4); + s[i * 2 + 1] = charHex (c & 15); } - - return strDst; + return s; } }