// SPDX-FileCopyrightText: 2021 Carl Schwan // // SPDX-License-Identifier: LGPL-2.1-or-later #include "olm/qolmsession.h" using namespace Quotient; std::optional fromTypeAndCipthertext(size_t messageType, const QByteArray &ciphertext) { if (messageType == OLM_MESSAGE_TYPE_PRE_KEY) { return PreKeyMessage { ciphertext }; } else if (messageType == OLM_MESSAGE_TYPE_MESSAGE) { return QOlmMessage { ciphertext }; } return std::nullopt; } std::pair toPair(const OlmMessage &message) { return std::visit([](auto &arg) { using T = std::decay_t; if constexpr (std::is_same_v) { return std::make_pair(MessageType, QByteArray(arg.message)); } else if constexpr (std::is_same_v) { return std::make_pair(PreKeyType, QByteArray(arg.message)); } }, message); }