0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-27 19:28:52 +02:00

ircd::json: Improve validator grammar; clarify magic number.

This commit is contained in:
Jason Volk 2018-03-28 22:05:54 -07:00
parent 4a1ca1a525
commit db9e5f3b78

View file

@ -1758,7 +1758,7 @@ ircd::json::serialized(const value &v)
case STRING:
{
if(!v.string)
return 2;
return size(empty_string);
size_t ret(v.len);
const string_view sv{v.string, v.len};
@ -2192,8 +2192,13 @@ ircd::json::valid(const string_view &s,
std::nothrow_t)
noexcept try
{
static const parser::rule<> validator
{
parser.value(0) >> eoi
};
const char *start(begin(s)), *const stop(end(s));
return qi::parse(start, stop, parser.value(0) >> eoi);
return qi::parse(start, stop, validator);
}
catch(...)
{
@ -2204,8 +2209,13 @@ void
ircd::json::valid(const string_view &s)
try
{
static const parser::rule<> validator
{
eps > parser.value(0) > eoi
};
const char *start(begin(s)), *const stop(end(s));
qi::parse(start, stop, eps > (parser.value(0) >> eoi));
qi::parse(start, stop, validator);
}
catch(const qi::expectation_failure<const char *> &e)
{