refactor(emojis): use std::variant and QStringView (#6714)
This commit is contained in:
@@ -312,10 +312,10 @@ void Emojis::loadEmojiSet()
|
||||
});
|
||||
}
|
||||
|
||||
std::vector<boost::variant<EmotePtr, QString>> Emojis::parse(
|
||||
const QString &text) const
|
||||
std::vector<std::variant<EmotePtr, QStringView>> Emojis::parse(
|
||||
QStringView text) const
|
||||
{
|
||||
auto result = std::vector<boost::variant<EmotePtr, QString>>();
|
||||
auto result = std::vector<std::variant<EmotePtr, QStringView>>();
|
||||
QString::size_type lastParsedEmojiEndIndex = 0;
|
||||
|
||||
for (qsizetype i = 0; i < text.length(); ++i)
|
||||
@@ -351,7 +351,7 @@ std::vector<boost::variant<EmotePtr, QString>> Emojis::parse(
|
||||
{
|
||||
// look in emoji->value
|
||||
bool match = QStringView{emoji->value}.mid(1) ==
|
||||
QStringView{text}.mid(i + 1, emojiExtraCharacters);
|
||||
text.mid(i + 1, emojiExtraCharacters);
|
||||
|
||||
if (match)
|
||||
{
|
||||
@@ -367,8 +367,7 @@ std::vector<boost::variant<EmotePtr, QString>> Emojis::parse(
|
||||
// This checking here relies on the fact that the nonQualified string
|
||||
// always starts with the same byte as value (the unified string)
|
||||
bool match = QStringView{emoji->nonQualified}.mid(1) ==
|
||||
QStringView{text}.mid(
|
||||
i + 1, emojiNonQualifiedExtraCharacters);
|
||||
text.mid(i + 1, emojiNonQualifiedExtraCharacters);
|
||||
|
||||
if (match)
|
||||
{
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
#include "common/FlagsEnum.hpp"
|
||||
#include "providers/emoji/EmojiStyle.hpp"
|
||||
|
||||
#include <boost/variant.hpp>
|
||||
#include <QMap>
|
||||
#include <QRegularExpression>
|
||||
#include <QVector>
|
||||
|
||||
#include <memory>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
namespace chatterino {
|
||||
@@ -50,8 +50,8 @@ class IEmojis
|
||||
public:
|
||||
virtual ~IEmojis() = default;
|
||||
|
||||
virtual std::vector<boost::variant<EmotePtr, QString>> parse(
|
||||
const QString &text) const = 0;
|
||||
virtual std::vector<std::variant<EmotePtr, QStringView>> parse(
|
||||
QStringView text) const = 0;
|
||||
virtual const std::vector<EmojiPtr> &getEmojis() const = 0;
|
||||
virtual const std::vector<QString> &getShortCodes() const = 0;
|
||||
virtual QString replaceShortCodes(const QString &text) const = 0;
|
||||
@@ -61,8 +61,8 @@ class Emojis : public IEmojis
|
||||
{
|
||||
public:
|
||||
void load();
|
||||
std::vector<boost::variant<EmotePtr, QString>> parse(
|
||||
const QString &text) const override;
|
||||
std::vector<std::variant<EmotePtr, QStringView>> parse(
|
||||
QStringView text) const override;
|
||||
|
||||
std::vector<QString> shortCodes;
|
||||
QString replaceShortCodes(const QString &text) const override;
|
||||
|
||||
Reference in New Issue
Block a user