mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
ircd:Ⓜ️:state: Add unmake_key() inverse convenience to make_key().
This commit is contained in:
parent
33aea3fd19
commit
537b7e26aa
2 changed files with 17 additions and 0 deletions
|
@ -53,6 +53,7 @@ namespace ircd::m::state
|
|||
bool prefix_eq(const json::array &a, const json::array &b);
|
||||
json::array make_key(const mutable_buffer &out, const string_view &type, const string_view &state_key);
|
||||
json::array make_key(const mutable_buffer &out, const string_view &type);
|
||||
string_view unmake_key(const mutable_buffer &out, const json::array &);
|
||||
|
||||
id set_node(db::txn &txn, const mutable_buffer &id, const json::object &node);
|
||||
bool get_node(const std::nothrow_t, const string_view &id, const node_closure &);
|
||||
|
|
|
@ -829,6 +829,22 @@ ircd::m::state::set_node(db::txn &iov,
|
|||
return hashb64;
|
||||
}
|
||||
|
||||
/// Convenience inverse of make_key.
|
||||
ircd::string_view
|
||||
ircd::m::state::unmake_key(const mutable_buffer &out,
|
||||
const json::array &key)
|
||||
{
|
||||
window_buffer wb{out};
|
||||
for(const auto &part : key)
|
||||
wb([&part](const mutable_buffer &buf)
|
||||
{
|
||||
assert(json::type(part) == json::STRING);
|
||||
return copy(buf, unquote(part));
|
||||
});
|
||||
|
||||
return wb.completed();
|
||||
}
|
||||
|
||||
/// Creates a key array from the most common key pattern of a matrix
|
||||
/// room (type,state_key).
|
||||
ircd::json::array
|
||||
|
|
Loading…
Reference in a new issue