0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-16 15:00:51 +01:00

ircd::json: Fixes to grammar and generator related.

This commit is contained in:
Jason Volk 2017-08-23 15:02:24 -06:00
parent 6dbc9201f1
commit 03734c7fb5

View file

@ -350,7 +350,7 @@ const
{
const auto gg
{
maxwidth(stop - out)[std::forward<gen>(g)] | eps[failed_to_serialize_object]
maxwidth(size_t(stop - out))[std::forward<gen>(g)] | eps[failed_to_serialize_object]
};
return karma::generate(out, gg, std::forward<attr>(a));
@ -365,7 +365,7 @@ const
{
const auto gg
{
maxwidth(stop - out)[std::forward<gen>(g)] | eps[failed_to_serialize_object]
maxwidth(size_t(stop - out))[std::forward<gen>(g)] | eps[failed_to_serialize_object]
};
return karma::generate(out, gg);
@ -690,7 +690,7 @@ ircd::json::obj::obj(recursive_t recursive,
const doc &doc)
:idx{doc.count()}
{
static const auto transform([&]
std::transform(std::begin(doc), std::end(doc), std::begin(idx), [&]
(const doc::member &m) -> obj::member
{
switch(type(m.second))
@ -702,8 +702,6 @@ ircd::json::obj::obj(recursive_t recursive,
return obj::member{m};
};
});
std::transform(std::begin(doc), std::end(doc), std::begin(idx), transform);
}
ircd::json::obj::obj(const doc &doc)
@ -773,7 +771,7 @@ const
const auto &val(it->second);
if(!indice.empty())
{
const auto idx(lex_cast<size_t>(chomp(indice, "]")));
const auto idx(lex_cast<size_t>(rstrip(indice, ']')));
if(type(val) != ARRAY)
throw not_found("cannot recurse through non-array \"%s\" for indice [%zu]", name, idx);