Skip to content

Commit

Permalink
Combine append_value & append_text
Browse files Browse the repository at this point in the history
- Avoid unnecessary conversion
  • Loading branch information
visuve committed Mar 2, 2024
1 parent eebf689 commit 9f8dbbd
Showing 1 changed file with 11 additions and 15 deletions.
26 changes: 11 additions & 15 deletions src/sykero_csv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace sl::csv

for (auto column_name : _header)
{
append_text(column_name);
append_value(column_name);
}

size_t file_size = file_descriptor::file_size();
Expand All @@ -51,7 +51,7 @@ namespace sl::csv
}

template<typename... Args>
void append_row(Args... args)
void append_row(Args&&... args)
{
static_assert(sizeof...(Args) == Columns, "too few arguments!");

Expand All @@ -65,30 +65,26 @@ namespace sl::csv
}

private:
void append_text(std::string_view text)
{
_row += text;

if (++_current_column < Columns)
template <typename T>
void append_value(T&& value)
{
if constexpr (std::is_arithmetic_v<std::remove_reference_t<T>>)
{
_row += ',';
_row += std::to_string(value);
}
else
{
_row += "\r\n";
_row += value;
}
}

template <typename T>
void append_value(T t)
{
if constexpr (std::is_arithmetic_v<T>)
if (++_current_column < Columns)
{
append_text(std::to_string(t));
_row += ',';
}
else
{
append_text(t);
_row += "\r\n";
}
}

Expand Down

0 comments on commit 9f8dbbd

Please sign in to comment.