mirror of
https://github.com/matrix-construct/construct
synced 2024-09-06 08:45:20 +02:00
ircd::json: Warn when sampling size() of object and array the wrong way.
This commit is contained in:
parent
723cd3440b
commit
0ae0172a25
2 changed files with 18 additions and 0 deletions
|
@ -60,6 +60,7 @@ struct ircd::json::array
|
||||||
|
|
||||||
const_iterator find(size_t i) const;
|
const_iterator find(size_t i) const;
|
||||||
size_t count() const;
|
size_t count() const;
|
||||||
|
size_t size() const;
|
||||||
|
|
||||||
template<class T> T at(const size_t &i) const;
|
template<class T> T at(const size_t &i) const;
|
||||||
string_view at(const size_t &i) const;
|
string_view at(const size_t &i) const;
|
||||||
|
@ -147,6 +148,14 @@ const
|
||||||
return it;
|
return it;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((warning("Taking string_view::size() not the count() of array elements")))
|
||||||
|
inline size_t
|
||||||
|
ircd::json::array::size()
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return count();
|
||||||
|
}
|
||||||
|
|
||||||
inline size_t
|
inline size_t
|
||||||
ircd::json::array::count()
|
ircd::json::array::count()
|
||||||
const
|
const
|
||||||
|
|
|
@ -84,6 +84,7 @@ struct ircd::json::object
|
||||||
|
|
||||||
// util
|
// util
|
||||||
size_t count() const;
|
size_t count() const;
|
||||||
|
size_t size() const; // warns if used; use count()
|
||||||
bool has(const string_view &key) const;
|
bool has(const string_view &key) const;
|
||||||
bool has(const path &) const;
|
bool has(const path &) const;
|
||||||
|
|
||||||
|
@ -286,6 +287,14 @@ catch(const bad_lex_cast &e)
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((warning("Taking string_view::size() not the count() of members in the object")))
|
||||||
|
inline size_t
|
||||||
|
ircd::json::object::size()
|
||||||
|
const
|
||||||
|
{
|
||||||
|
return string_view::size();
|
||||||
|
}
|
||||||
|
|
||||||
inline size_t
|
inline size_t
|
||||||
ircd::json::object::count()
|
ircd::json::object::count()
|
||||||
const
|
const
|
||||||
|
|
Loading…
Reference in a new issue