LeviLamina
Loading...
Searching...
No Matches
UIRawMessage.h
1#pragma once
2
3#include <memory>
4#include <string>
5#include <vector>
6
7#include "ll/api/base/Macro.h"
8
9namespace ll::ui {
10
11namespace detail {
12class UIRawMessageAccess;
13}
14
15class UIRawMessage {
16 struct Impl;
17 std::shared_ptr<Impl const> impl;
18
19 explicit UIRawMessage(std::shared_ptr<Impl const>);
20 friend class detail::UIRawMessageAccess;
21
22public:
23 LLAPI UIRawMessage();
24 LLAPI ~UIRawMessage();
25
26 LLAPI UIRawMessage(UIRawMessage const&);
27 LLAPI UIRawMessage& operator=(UIRawMessage const&);
28 LLAPI UIRawMessage(UIRawMessage&&) noexcept;
29 LLAPI UIRawMessage& operator=(UIRawMessage&&) noexcept;
30
31 LLNDAPI static UIRawMessage text(std::string value);
32 LLNDAPI static UIRawMessage translate(std::string key);
33 LLNDAPI static UIRawMessage translate(std::string key, std::vector<std::string> substitutions);
34 LLNDAPI static UIRawMessage translate(std::string key, UIRawMessage substitutions);
35 LLNDAPI static UIRawMessage rawText(std::vector<UIRawMessage> messages);
36
37 [[nodiscard]] LLAPI bool operator==(UIRawMessage const&) const noexcept;
38};
39
40} // namespace ll::ui