From 9b5834afd486df1b4b6b9c9d3002c6d98d5a6c03 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 15 Nov 2017 17:22:41 -0800 Subject: [PATCH] ircd::util: Add a count for the params size. --- include/ircd/params.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/ircd/params.h b/include/ircd/params.h index 5cef021ef..f876db0f4 100644 --- a/include/ircd/params.h +++ b/include/ircd/params.h @@ -41,6 +41,7 @@ class ircd::util::params IRCD_EXCEPTION(error, missing) IRCD_EXCEPTION(error, invalid) + size_t count() const; string_view operator[](const size_t &i) const; // returns empty template T at(const size_t &i, const T &def) const; // throws invalid template T at(const size_t &i) const; // throws missing or invalid @@ -67,7 +68,7 @@ ircd::util::params::at(const size_t &i, const T &def) const try { - return token_count(in, sep) > i? at(i) : def; + return count() > i? at(i) : def; } catch(const bad_lex_cast &e) { @@ -101,7 +102,14 @@ inline ircd::string_view ircd::util::params::operator[](const size_t &i) const { - return token_count(in, sep) > i? token(in, sep, i) : string_view{}; + return count() > i? token(in, sep, i) : string_view{}; +} + +inline size_t +ircd::util::params::count() +const +{ + return token_count(in, sep); } inline const char *