summaryrefslogtreecommitdiff
path: root/gentoobrowse-api/domain/converters.impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'gentoobrowse-api/domain/converters.impl.h')
-rw-r--r--gentoobrowse-api/domain/converters.impl.h58
1 files changed, 31 insertions, 27 deletions
diff --git a/gentoobrowse-api/domain/converters.impl.h b/gentoobrowse-api/domain/converters.impl.h
index f6b6bad..d79b7e4 100644
--- a/gentoobrowse-api/domain/converters.impl.h
+++ b/gentoobrowse-api/domain/converters.impl.h
@@ -7,18 +7,22 @@
namespace Slicer {
template<typename T> class UnpackPqTextArrayInto : public UnpackPqTextArray {
public:
- UnpackPqTextArrayInto(std::istream & s, std::vector<T> & l) : UnpackPqTextArray(s), list(l) { }
+ UnpackPqTextArrayInto(std::istream & inputStrm, std::vector<T> & output) :
+ UnpackPqTextArray(inputStrm), list(output)
+ {
+ }
void
- consume(std::string s) override
+ consume(std::string input) override
{
if constexpr (std::is_arithmetic_v<T>) {
- if (std::from_chars(s.c_str(), s.c_str() + s.length(), list.emplace_back()).ec != std::error_code {}) {
+ if (std::from_chars(input.c_str(), input.c_str() + input.length(), list.emplace_back()).ec
+ != std::error_code {}) {
throw std::domain_error {"Invalid arithmetic input"};
}
}
else {
- list.emplace_back(std::move(s));
+ list.emplace_back(std::move(input));
}
}
@@ -28,50 +32,50 @@ namespace Slicer {
template<typename T>
void
- packPqVar(std::ostream & s, const T & l)
+ packPqVar(std::ostream & outputStrm, const T & input)
{
if constexpr (std::is_arithmetic_v<T>) {
- s << l;
+ outputStrm << input;
}
else {
- s << '\"';
- std::transform(l.begin(), l.end(), std::ostream_iterator<std::string_view>(s), [](const char & c) {
- if (c == '"') {
+ outputStrm << '\"';
+ std::ranges::transform(input, std::ostream_iterator<std::string_view>(outputStrm), [](const char & chr) {
+ if (chr == '"') {
return std::string_view(R"(\")");
}
- return std::string_view(&c, 1);
+ return std::string_view(&chr, 1);
});
- s << '\"';
+ outputStrm << '\"';
}
}
template<typename T>
std::vector<T>
- unpackPqArray(const std::string & s)
+ unpackPqArray(const std::string & input)
{
std::vector<T> rtn;
- std::stringstream ss(s);
- UnpackPqTextArrayInto<T> u(ss, rtn);
- u.yylex();
+ std::stringstream inputStrm(input);
+ UnpackPqTextArrayInto<T> unpacker(inputStrm, rtn);
+ unpacker.yylex();
return rtn;
}
template<typename T>
std::string
- packPqArray(const T & l)
+ packPqArray(const T & input)
{
- std::stringstream ss;
- ss << "{";
- if (!l.empty()) {
- auto i = l.cbegin();
- packPqVar(ss, *i);
- i++;
- while (i != l.cend()) {
- ss << ",";
- packPqVar(ss, *i++);
+ std::stringstream outputStrm;
+ outputStrm << "{";
+ if (!input.empty()) {
+ auto chr = input.cbegin();
+ packPqVar(outputStrm, *chr);
+ chr++;
+ while (chr != input.cend()) {
+ outputStrm << ",";
+ packPqVar(outputStrm, *chr++);
}
}
- ss << "}";
- return std::move(ss).str();
+ outputStrm << "}";
+ return std::move(outputStrm).str();
}
}