diff --git a/include/ircd/m/event.h b/include/ircd/m/event.h index 6d488d31d..75aee7794 100644 --- a/include/ircd/m/event.h +++ b/include/ircd/m/event.h @@ -19,6 +19,7 @@ namespace ircd::m bool my(const event &); size_t degree(const event &); + string_view membership(const event &); bool check_size(std::nothrow_t, const event &); void check_size(const event &); diff --git a/ircd/m/event.cc b/ircd/m/event.cc index cd370c2d9..6de712958 100644 --- a/ircd/m/event.cc +++ b/ircd/m/event.cc @@ -74,6 +74,14 @@ ircd::m::check_size(std::nothrow_t, return event_size <= size_t(event_max_size); } +ircd::string_view +ircd::m::membership(const m::event &event) +{ + return json::get<"membership"_>(event)? + string_view{json::get<"membership"_>(event)}: + unquote(json::get<"content"_>(event).get("membership")); +} + size_t ircd::m::degree(const event &event) {