mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2025-02-16 15:17:18 +02:00
dropEmptyInitThenConcatStringSep: Check that we don't drop...
... initial empty strings. The tests pass, which is encouraging.
This commit is contained in:
parent
1a8defd06f
commit
79eb0adf9d
2 changed files with 12 additions and 0 deletions
|
@ -41,6 +41,11 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
friend std::ostream & operator <<(std::ostream & os, const SymbolStr & symbol);
|
friend std::ostream & operator <<(std::ostream & os, const SymbolStr & symbol);
|
||||||
|
|
||||||
|
bool empty() const
|
||||||
|
{
|
||||||
|
return s->empty();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -40,6 +40,13 @@ template<class C>
|
||||||
std::string dropEmptyInitThenConcatStringsSep(const std::string_view sep, const C & ss)
|
std::string dropEmptyInitThenConcatStringsSep(const std::string_view sep, const C & ss)
|
||||||
{
|
{
|
||||||
size_t size = 0;
|
size_t size = 0;
|
||||||
|
|
||||||
|
for (auto & i : ss) {
|
||||||
|
// Make sure we don't rely on the empty item ignoring behavior
|
||||||
|
assert(!i.empty());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// need a cast to string_view since this is also called with Symbols
|
// need a cast to string_view since this is also called with Symbols
|
||||||
for (const auto & s : ss) size += sep.size() + std::string_view(s).size();
|
for (const auto & s : ss) size += sep.size() + std::string_view(s).size();
|
||||||
std::string s;
|
std::string s;
|
||||||
|
|
Loading…
Add table
Reference in a new issue