0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-26 15:33:54 +01:00

ircd: Add mutable_buffer inplace replace to stringops.

This commit is contained in:
Jason Volk 2019-06-26 00:55:12 -07:00
parent 6379813950
commit 5c03f4e08f

View file

@ -101,6 +101,7 @@ namespace ircd
std::string replace(std::string, const string_view &before, const string_view &after);
std::string replace(const string_view &, const char &before, const string_view &after);
std::string replace(const string_view &, const string_view &before, const string_view &after);
string_view replace(const mutable_buffer &, const char &before, const char &after);
// Truncate view at maximum length
string_view trunc(const string_view &, const size_t &max);
@ -365,6 +366,33 @@ ircd::trunc(const string_view &s,
return { s.data(), std::min(s.size(), max) };
}
inline ircd::string_view
ircd::replace(const mutable_buffer &out,
const string_view &in,
const char &before,
const char &after)
{
const auto &end_in
{
std::(begin(in), std::min(size(in), size(out)))
};
return
{
begin(out),
std::replace_copy(begin(in), end_in, begin(out), before, after)
};
}
inline ircd::string_view
ircd::replace(const mutable_buffer &s,
const char &before,
const char &after)
{
std::replace(begin(s), end(s), before, after);
return { data(s), size(s) };
}
inline std::string
ircd::replace(const string_view &s,
const string_view &before,