minor code improvements

This commit is contained in:
fourtf
2018-01-28 03:48:15 +01:00
parent 431b9a8c1f
commit 99aac9eb6a
5 changed files with 16 additions and 23 deletions
+8 -14
View File
@@ -9,35 +9,29 @@
namespace chatterino {
namespace messages {
struct MessageBuilder
{
struct MessageBuilder {
public:
MessageBuilder();
MessagePtr getMessage();
void setHighlight(bool value);
void appendElement(MessageElement *element);
void append(MessageElement *element);
void appendTimestamp();
void appendTimestamp(const QTime &time);
QString matchLink(const QString &string);
// typename std::enable_if<std::is_base_of<MessageElement, T>::value, T>::type
template <class T, class... Args>
template <typename T, typename... Args,
typename _ = std::enable_if<std::is_base_of<MessageElement, T>::value>::type>
T *emplace(Args &&... args)
{
static_assert(std::is_base_of<MessageElement, T>::value, "T must extend MessageElement");
T *element = new T(std::forward<Args>(args)...);
this->appendElement(element);
this->append(element);
return element;
}
void appendTimestamp();
void appendTimestamp(const QTime &time);
QString matchLink(const QString &string);
QString originalMessage;
protected:
MessagePtr message;
};