Skip to content

Commit

Permalink
ircd::json::stack::member: Conversion constructions from other member…
Browse files Browse the repository at this point in the history
… categories.
  • Loading branch information
jevolk committed Apr 23, 2023
1 parent 6c3420a commit d80f29b
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
4 changes: 4 additions & 0 deletions include/ircd/json/stack/member.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ struct ircd::json::stack::member
member(stack &s, const string_view &name, const json::value &);
template<class... T> member(object &po, const string_view &name, const json::tuple<T...> &t);
template<class... T> member(stack &s, const string_view &name, const json::tuple<T...> &t);
explicit member(object &, const json::object::member &);
explicit member(stack &, const json::object::member &);
explicit member(object &, const json::member &);
explicit member(stack &, const json::member &);
member() = default;
member(const member &) = delete;
member(member &&) noexcept;
Expand Down
36 changes: 36 additions & 0 deletions ircd/json.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1712,6 +1712,42 @@ ircd::json::stack::member::member(object &po,
s->append(string_view{tmp, size_t(data(buf) - tmp)});
}

ircd::json::stack::member::member(stack &s,
const json::member &m)
:member
{
stack::top<object>(s), m
}
{
}

ircd::json::stack::member::member(object &po,
const json::member &m)
:member
{
po, string_view{m.first}, m.second
}
{
}

ircd::json::stack::member::member(stack &s,
const json::object::member &om)
:member
{
stack::top<object>(s), om
}
{
}

ircd::json::stack::member::member(object &po,
const json::object::member &om)
:member
{
po, om.first, om.second
}
{
}

ircd::json::stack::member::member(stack &s,
const string_view &name,
const json::value &value)
Expand Down

0 comments on commit d80f29b

Please sign in to comment.