From: Joel Rosdahl Date: Wed, 5 Oct 2022 18:58:01 +0000 (+0200) Subject: enhance: Add util::to_string instantiations for Bytes and span X-Git-Tag: v4.7~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3decb4f2accfaba433fbfb9716a0c30792d7fc7b;p=thirdparty%2Fccache.git enhance: Add util::to_string instantiations for Bytes and span --- diff --git a/src/util/string.hpp b/src/util/string.hpp index d9c7fe595..0e48bc4e3 100644 --- a/src/util/string.hpp +++ b/src/util/string.hpp @@ -18,6 +18,8 @@ #pragma once +#include + #include #include @@ -195,6 +197,20 @@ to_string(const std::string_view& sv) return std::string(sv); } +template<> +inline std::string +to_string(const nonstd::span& bytes) +{ + return std::string(to_string_view(bytes)); +} + +template<> +inline std::string +to_string(const util::Bytes& bytes) +{ + return std::string(to_string_view(bytes)); +} + inline std::string_view to_string_view(nonstd::span data) { diff --git a/unittest/test_util_string.cpp b/unittest/test_util_string.cpp index 2a45fbcd9..626966359 100644 --- a/unittest/test_util_string.cpp +++ b/unittest/test_util_string.cpp @@ -289,10 +289,14 @@ TEST_CASE("util::strip_whitespace") TEST_CASE("util::to_string") { + const uint8_t bytes[] = {'f', 'o', 'o'}; const char str[] = "foo"; CHECK(util::to_string(std::string(str)) == std::string(str)); CHECK(util::to_string(std::string_view(str)) == std::string(str)); + CHECK(util::to_string(nonstd::span(bytes)) + == std::string(str)); + CHECK(util::to_string(util::Bytes(bytes, 3)) == std::string(str)); } TEST_CASE("util::to_string_view")