A few more small speedups
This commit is contained in:
parent
22c5076c64
commit
4357c47ebe
8 changed files with 103 additions and 120 deletions
|
|
@ -11,6 +11,7 @@
|
|||
#include <type_traits>
|
||||
|
||||
namespace {
|
||||
|
||||
struct IsStateEvent
|
||||
{
|
||||
template<class T>
|
||||
|
|
@ -38,6 +39,15 @@ struct EventMsgType
|
|||
}
|
||||
};
|
||||
|
||||
struct EventType
|
||||
{
|
||||
template<class T>
|
||||
mtx::events::EventType operator()(const mtx::events::Event<T> &e)
|
||||
{
|
||||
return e.type;
|
||||
}
|
||||
};
|
||||
|
||||
struct CallType
|
||||
{
|
||||
template<class T>
|
||||
|
|
@ -313,8 +323,13 @@ mtx::accessors::sender(const mtx::events::collections::TimelineEvents &event)
|
|||
QDateTime
|
||||
mtx::accessors::origin_server_ts(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
return QDateTime::fromMSecsSinceEpoch(
|
||||
std::visit([](const auto &e) { return e.origin_server_ts; }, event));
|
||||
return QDateTime::fromMSecsSinceEpoch(origin_server_ts_ms(event));
|
||||
}
|
||||
|
||||
std::uint64_t
|
||||
mtx::accessors::origin_server_ts_ms(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
return std::visit([](const auto &e) { return e.origin_server_ts; }, event);
|
||||
}
|
||||
|
||||
std::string
|
||||
|
|
@ -323,6 +338,11 @@ mtx::accessors::filename(const mtx::events::collections::TimelineEvents &event)
|
|||
return std::visit(EventFilename{}, event);
|
||||
}
|
||||
|
||||
mtx::events::EventType
|
||||
mtx::accessors::event_type(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
return std::visit(EventType{}, event);
|
||||
}
|
||||
mtx::events::MessageType
|
||||
mtx::accessors::msg_type(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
|
|
@ -463,8 +483,70 @@ mtx::accessors::serialize_event(const mtx::events::collections::TimelineEvents &
|
|||
return nlohmann::json(event);
|
||||
}
|
||||
|
||||
bool
|
||||
mtx::accessors::is_state_event(const mtx::events::collections::StateEvents &event)
|
||||
{
|
||||
return std::visit(IsStateEvent{}, event);
|
||||
}
|
||||
|
||||
bool
|
||||
mtx::accessors::is_state_event(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
return std::visit(IsStateEvent{}, event);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<T> &e)
|
||||
-> std::enable_if_t<std::is_same<decltype(e.content.msgtype), std::string>::value, bool>
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::Event<T> &)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::EncryptedEvent<T> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallInvite> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallAnswer> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallHangUp> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallReject> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
static constexpr auto
|
||||
isMessage(const mtx::events::RoomEvent<mtx::events::voip::CallSelectAnswer> &)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
mtx::accessors::is_message(const mtx::events::collections::TimelineEvents &event)
|
||||
{
|
||||
return std::visit([](const auto &e) { return isMessage(e); }, event);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue