From db9d1dcb99d5a540b9d0e65d4691222a6630f876 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 20 Sep 2018 16:30:04 -0700 Subject: [PATCH] ircd: Minor cleanup. --- ircd/lexical.cc | 100 ++++++++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 46 deletions(-) diff --git a/ircd/lexical.cc b/ircd/lexical.cc index 01e95a22e..42bcc65ec 100644 --- a/ircd/lexical.cc +++ b/ircd/lexical.cc @@ -18,6 +18,60 @@ #include +// +// misc util +// + +std::string +ircd::u2a(const const_buffer &in) +{ + return string(size(in) * 2, [&in] + (const mutable_buffer &out) + { + return u2a(out, in); + }); +} + +ircd::string_view +ircd::u2a(const mutable_buffer &out, + const const_buffer &in) +{ + char *p(data(out)); + for(size_t i(0); i < size(in) && p + 2 <= end(out); ++i) + { + char tmp[3]; + ::snprintf(tmp, sizeof(tmp), "%02x", in[i]); + *p++ = tmp[0]; + *p++ = tmp[1]; + } + + return { data(out), p }; +} + +ircd::const_buffer +ircd::a2u(const mutable_buffer &out, + const const_buffer &in) +{ + const size_t len{size(in) / 2}; + for(size_t i(0); i < len; ++i) + { + const char gl[3] + { + in[i * 2], + in[i * 2 + 1], + '\0' + }; + + out[i] = strtol(gl, nullptr, 16); + } + + return { data(out), len }; +} + +// +// lex_cast +// + namespace ircd { /// The static lex_cast ring buffers are each LEX_CAST_BUFSIZE bytes; @@ -444,49 +498,3 @@ ircd::replace(const string_view &s, return std::distance(begin(buf), p); }); } - -std::string -ircd::u2a(const const_buffer &in) -{ - return string(size(in) * 2, [&in] - (const mutable_buffer &out) - { - return u2a(out, in); - }); -} - -ircd::string_view -ircd::u2a(const mutable_buffer &out, - const const_buffer &in) -{ - char *p(data(out)); - for(size_t i(0); i < size(in) && p + 2 <= end(out); ++i) - { - char tmp[3]; - ::snprintf(tmp, sizeof(tmp), "%02x", in[i]); - *p++ = tmp[0]; - *p++ = tmp[1]; - } - - return { data(out), p }; -} - -ircd::const_buffer -ircd::a2u(const mutable_buffer &out, - const const_buffer &in) -{ - const size_t len{size(in) / 2}; - for(size_t i(0); i < len; ++i) - { - const char gl[3] - { - in[i * 2], - in[i * 2 + 1], - '\0' - }; - - out[i] = strtol(gl, nullptr, 16); - } - - return { data(out), len }; -}