mirror of
https://github.com/matrix-construct/construct
synced 2024-06-02 10:08:56 +02:00
ircd:Ⓜ️:event: Addl prev utils; simplify before().
This commit is contained in:
parent
02d1cd1115
commit
48a436fcc1
|
@ -177,6 +177,14 @@ struct ircd::m::event::prev
|
|||
event::id prev_state(const uint &idx) const;
|
||||
event::id prev_event(const uint &idx) const;
|
||||
|
||||
size_t auth_events_count() const;
|
||||
size_t prev_states_count() const;
|
||||
size_t prev_events_count() const;
|
||||
|
||||
bool auth_events_has(const event::id &) const;
|
||||
bool prev_states_has(const event::id &) const;
|
||||
bool prev_events_has(const event::id &) const;
|
||||
|
||||
using super_type::tuple;
|
||||
using super_type::operator=;
|
||||
};
|
||||
|
|
|
@ -258,24 +258,8 @@ bool
|
|||
ircd::m::before(const event &a,
|
||||
const event &b)
|
||||
{
|
||||
const event::prev prev_b{b};
|
||||
const json::array &prev_b_events
|
||||
{
|
||||
json::get<"prev_events"_>(prev_b)
|
||||
};
|
||||
|
||||
for(const json::array &prev_event : prev_b_events)
|
||||
{
|
||||
const event::id prev_event_id
|
||||
{
|
||||
unquote(prev_event.at(0))
|
||||
};
|
||||
|
||||
if(prev_event_id == at<"event_id"_>(a))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
const event::prev prev{b};
|
||||
return prev.prev_events_has(at<"event_id"_>(a));
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -1257,6 +1241,60 @@ ircd::m::essential(m::event event,
|
|||
// event::prev
|
||||
//
|
||||
|
||||
bool
|
||||
ircd::m::event::prev::prev_events_has(const event::id &event_id)
|
||||
const
|
||||
{
|
||||
for(const json::array &p : json::get<"prev_events"_>(*this))
|
||||
if(unquote(p.at(0)) == event_id)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::m::event::prev::prev_states_has(const event::id &event_id)
|
||||
const
|
||||
{
|
||||
for(const json::array &p : json::get<"prev_state"_>(*this))
|
||||
if(unquote(p.at(0)) == event_id)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::m::event::prev::auth_events_has(const event::id &event_id)
|
||||
const
|
||||
{
|
||||
for(const json::array &p : json::get<"auth_events"_>(*this))
|
||||
if(unquote(p.at(0)) == event_id)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::m::event::prev::prev_events_count()
|
||||
const
|
||||
{
|
||||
return json::get<"prev_events"_>(*this).count();
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::m::event::prev::prev_states_count()
|
||||
const
|
||||
{
|
||||
return json::get<"prev_state"_>(*this).count();
|
||||
}
|
||||
|
||||
size_t
|
||||
ircd::m::event::prev::auth_events_count()
|
||||
const
|
||||
{
|
||||
return json::get<"auth_events"_>(*this).count();
|
||||
}
|
||||
|
||||
ircd::m::event::id
|
||||
ircd::m::event::prev::auth_event(const uint &idx)
|
||||
const
|
||||
|
|
Loading…
Reference in a new issue