From 3decb4f2accfaba433fbfb9716a0c30792d7fc7b Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Wed, 5 Oct 2022 20:58:01 +0200 Subject: [PATCH] enhance: Add util::to_string instantiations for Bytes and span --- src/util/string.hpp | 16 ++++++++++++++++ unittest/test_util_string.cpp | 4 ++++ 2 files changed, 20 insertions(+) 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") -- 2.47.2