mirror of
https://github.com/matrix-construct/construct
synced 2024-10-02 13:48:53 +02:00
ircd::tokens: Simplify interface argument passing.
This commit is contained in:
parent
5a995f4bac
commit
0fbbf1853f
2 changed files with 39 additions and 39 deletions
|
@ -18,14 +18,14 @@ namespace ircd
|
||||||
// to allocate and copy the token with null termination.
|
// to allocate and copy the token with null termination.
|
||||||
using token_view = closure_bool<std::function, const string_view &>;
|
using token_view = closure_bool<std::function, const string_view &>;
|
||||||
|
|
||||||
bool tokens(const string_view &str, const char &sep, const token_view &);
|
bool tokens(const string_view &str, const char sep, const token_view &);
|
||||||
bool tokens(const string_view &str, const string_view &sep, const token_view &);
|
bool tokens(const string_view &str, const string_view &sep, const token_view &);
|
||||||
|
|
||||||
size_t tokens(const string_view &str, const char &sep, const size_t &limit, const token_view &);
|
size_t tokens(const string_view &str, const char sep, const size_t limit, const token_view &);
|
||||||
size_t tokens(const string_view &str, const string_view &sep, const size_t &limit, const token_view &);
|
size_t tokens(const string_view &str, const string_view &sep, const size_t limit, const token_view &);
|
||||||
|
|
||||||
// Copies tokens into your buffer and null terminates strtok() style. Returns BYTES of buf consumed.
|
// Copies tokens into your buffer and null terminates strtok() style. Returns BYTES of buf consumed.
|
||||||
size_t tokens(const string_view &str, const char &sep, const mutable_buffer &buf, const token_view &);
|
size_t tokens(const string_view &str, const char sep, const mutable_buffer &buf, const token_view &);
|
||||||
size_t tokens(const string_view &str, const string_view &sep, const mutable_buffer &buf, const token_view &);
|
size_t tokens(const string_view &str, const string_view &sep, const mutable_buffer &buf, const token_view &);
|
||||||
|
|
||||||
// Receive token view into iterator range
|
// Receive token view into iterator range
|
||||||
|
@ -81,29 +81,29 @@ namespace ircd
|
||||||
// Tools
|
// Tools
|
||||||
namespace ircd
|
namespace ircd
|
||||||
{
|
{
|
||||||
size_t token_count(const string_view &str, const char &sep);
|
size_t token_count(const string_view &str, const char sep);
|
||||||
size_t token_count(const string_view &str, const string_view &sep);
|
size_t token_count(const string_view &str, const string_view &sep);
|
||||||
|
|
||||||
bool token_exists(const string_view &str, const char &sep, const string_view &token);
|
bool token_exists(const string_view &str, const char sep, const string_view &token);
|
||||||
bool token_exists(const string_view &str, const string_view &sep, const string_view &token);
|
bool token_exists(const string_view &str, const string_view &sep, const string_view &token);
|
||||||
|
|
||||||
string_view token(const string_view &str, const char &sep, const size_t &at);
|
string_view token(const string_view &str, const char sep, const size_t at);
|
||||||
string_view token(const string_view &str, const string_view &sep, const size_t &at);
|
string_view token(const string_view &str, const string_view &sep, const size_t at);
|
||||||
|
|
||||||
string_view token(const string_view &str, const char &sep, const size_t &at, const string_view &def);
|
string_view token(const string_view &str, const char sep, const size_t at, const string_view &def);
|
||||||
string_view token(const string_view &str, const string_view &sep, const size_t &at, const string_view &def);
|
string_view token(const string_view &str, const string_view &sep, const size_t at, const string_view &def);
|
||||||
|
|
||||||
string_view token_last(const string_view &str, const char &sep);
|
string_view token_last(const string_view &str, const char sep);
|
||||||
string_view token_last(const string_view &str, const string_view &sep);
|
string_view token_last(const string_view &str, const string_view &sep);
|
||||||
|
|
||||||
string_view token_first(const string_view &str, const char &sep);
|
string_view token_first(const string_view &str, const char sep);
|
||||||
string_view token_first(const string_view &str, const string_view &sep);
|
string_view token_first(const string_view &str, const string_view &sep);
|
||||||
|
|
||||||
string_view tokens_after(const string_view &str, const char &sep, const ssize_t &at = 0);
|
string_view tokens_after(const string_view &str, const char sep, const ssize_t at = 0);
|
||||||
string_view tokens_after(const string_view &str, const string_view &sep, const ssize_t &at = 0);
|
string_view tokens_after(const string_view &str, const string_view &sep, const ssize_t at = 0);
|
||||||
|
|
||||||
string_view tokens_before(const string_view &str, const char &sep, const size_t &at = 0);
|
string_view tokens_before(const string_view &str, const char sep, const size_t at = 0);
|
||||||
string_view tokens_before(const string_view &str, const string_view &sep, const size_t &at = 0);
|
string_view tokens_before(const string_view &str, const string_view &sep, const size_t at = 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<size_t N,
|
template<size_t N,
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace ircd
|
||||||
struct [[gnu::visibility("internal")]]
|
struct [[gnu::visibility("internal")]]
|
||||||
ircd::string_separator
|
ircd::string_separator
|
||||||
{
|
{
|
||||||
string_view delim;
|
const string_view &delim;
|
||||||
|
|
||||||
template<class iterator,
|
template<class iterator,
|
||||||
class token>
|
class token>
|
||||||
|
@ -33,7 +33,7 @@ ircd::string_separator
|
||||||
struct [[gnu::visibility("internal")]]
|
struct [[gnu::visibility("internal")]]
|
||||||
ircd::char_separator
|
ircd::char_separator
|
||||||
{
|
{
|
||||||
char delim;
|
const char &delim;
|
||||||
|
|
||||||
template<class iterator,
|
template<class iterator,
|
||||||
class token>
|
class token>
|
||||||
|
@ -50,8 +50,8 @@ ircd::char_separator
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::tokens_before(const string_view &str,
|
ircd::tokens_before(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const size_t &i)
|
const size_t i)
|
||||||
{
|
{
|
||||||
assert(sep != '\0');
|
assert(sep != '\0');
|
||||||
const char _sep[2]
|
const char _sep[2]
|
||||||
|
@ -65,7 +65,7 @@ ircd::tokens_before(const string_view &str,
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::tokens_before(const string_view &str,
|
ircd::tokens_before(const string_view &str,
|
||||||
const string_view &sep,
|
const string_view &sep,
|
||||||
const size_t &i)
|
const size_t i)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
using iter = typename type::const_iterator;
|
using iter = typename type::const_iterator;
|
||||||
|
@ -90,8 +90,8 @@ ircd::tokens_before(const string_view &str,
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::tokens_after(const string_view &str,
|
ircd::tokens_after(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const ssize_t &i)
|
const ssize_t i)
|
||||||
{
|
{
|
||||||
assert(sep != '\0');
|
assert(sep != '\0');
|
||||||
const char _sep[2]
|
const char _sep[2]
|
||||||
|
@ -105,7 +105,7 @@ ircd::tokens_after(const string_view &str,
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::tokens_after(const string_view &str,
|
ircd::tokens_after(const string_view &str,
|
||||||
const string_view &sep,
|
const string_view &sep,
|
||||||
const ssize_t &i)
|
const ssize_t i)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
using iter = typename type::const_iterator;
|
using iter = typename type::const_iterator;
|
||||||
|
@ -130,7 +130,7 @@ ircd::tokens_after(const string_view &str,
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token_first(const string_view &str,
|
ircd::token_first(const string_view &str,
|
||||||
const char &sep)
|
const char sep)
|
||||||
{
|
{
|
||||||
assert(sep != '\0');
|
assert(sep != '\0');
|
||||||
const char _sep[2]
|
const char _sep[2]
|
||||||
|
@ -150,7 +150,7 @@ ircd::token_first(const string_view &str,
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token_last(const string_view &str,
|
ircd::token_last(const string_view &str,
|
||||||
const char &sep)
|
const char sep)
|
||||||
{
|
{
|
||||||
assert(sep != '\0');
|
assert(sep != '\0');
|
||||||
const char _sep[2]
|
const char _sep[2]
|
||||||
|
@ -188,8 +188,8 @@ ircd::token_last(const string_view &str,
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token(const string_view &str,
|
ircd::token(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const size_t &i,
|
const size_t i,
|
||||||
const string_view &def)
|
const string_view &def)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -203,7 +203,7 @@ catch(const std::out_of_range &)
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token(const string_view &str,
|
ircd::token(const string_view &str,
|
||||||
const string_view &sep,
|
const string_view &sep,
|
||||||
const size_t &i,
|
const size_t i,
|
||||||
const string_view &def)
|
const string_view &def)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -216,8 +216,8 @@ catch(const std::out_of_range &)
|
||||||
|
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token(const string_view &str,
|
ircd::token(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const size_t &i)
|
const size_t i)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
using iter = typename type::const_iterator;
|
using iter = typename type::const_iterator;
|
||||||
|
@ -235,7 +235,7 @@ ircd::token(const string_view &str,
|
||||||
ircd::string_view
|
ircd::string_view
|
||||||
ircd::token(const string_view &str,
|
ircd::token(const string_view &str,
|
||||||
const string_view &sep,
|
const string_view &sep,
|
||||||
const size_t &i)
|
const size_t i)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
using iter = typename type::const_iterator;
|
using iter = typename type::const_iterator;
|
||||||
|
@ -252,7 +252,7 @@ ircd::token(const string_view &str,
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ircd::token_exists(const string_view &str,
|
ircd::token_exists(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const string_view &tok)
|
const string_view &tok)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
|
@ -288,7 +288,7 @@ ircd::token_exists(const string_view &str,
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
ircd::token_count(const string_view &str,
|
ircd::token_count(const string_view &str,
|
||||||
const char &sep)
|
const char sep)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
using iter = typename type::const_iterator;
|
using iter = typename type::const_iterator;
|
||||||
|
@ -322,7 +322,7 @@ ircd::token_count(const string_view &str,
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
ircd::tokens(const string_view &str,
|
ircd::tokens(const string_view &str,
|
||||||
const char &sep_,
|
const char sep_,
|
||||||
const mutable_buffer &buf,
|
const mutable_buffer &buf,
|
||||||
const token_view &closure)
|
const token_view &closure)
|
||||||
{
|
{
|
||||||
|
@ -366,8 +366,8 @@ ircd::tokens(const string_view &str,
|
||||||
|
|
||||||
size_t
|
size_t
|
||||||
ircd::tokens(const string_view &str,
|
ircd::tokens(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const size_t &limit,
|
const size_t limit,
|
||||||
const token_view &closure)
|
const token_view &closure)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
|
@ -391,7 +391,7 @@ ircd::tokens(const string_view &str,
|
||||||
size_t
|
size_t
|
||||||
ircd::tokens(const string_view &str,
|
ircd::tokens(const string_view &str,
|
||||||
const string_view &sep,
|
const string_view &sep,
|
||||||
const size_t &limit,
|
const size_t limit,
|
||||||
const token_view &closure)
|
const token_view &closure)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
|
@ -414,7 +414,7 @@ ircd::tokens(const string_view &str,
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ircd::tokens(const string_view &str,
|
ircd::tokens(const string_view &str,
|
||||||
const char &sep,
|
const char sep,
|
||||||
const token_view &closure)
|
const token_view &closure)
|
||||||
{
|
{
|
||||||
using type = string_view;
|
using type = string_view;
|
||||||
|
|
Loading…
Reference in a new issue