1 #pragma once
2 
3 /// @file
4 /// @brief A text message.
5 
6 #if __has_include(<nlohmann/json_fwd.hpp>)
7 #include <nlohmann/json_fwd.hpp>
8 #else
9 #include <nlohmann/json.hpp>
10 #endif
11 
12 #include <string>
13 
14 #include "mtx/events/common.hpp"
15 
16 namespace mtx {
17 namespace events {
18 //! Non-state events sent in the timeline like messages.
19 namespace msg {
20 
21 //! Content of `m.room.message` with msgtype `m.text`.
22 struct Text
23 {
24     //! The body of the message.
25     std::string body;
26     //! Must be 'm.text'.
27     std::string msgtype;
28     //! We only handle org.matrix.custom.html.
29     std::string format;
30     //! HTML formatted message.
31     std::string formatted_body;
32     //! Relates to for rich replies
33     mtx::common::Relations relations;
34 };
35 
36 void
37 from_json(const nlohmann::json &obj, Text &content);
38 
39 void
40 to_json(nlohmann::json &obj, const Text &content);
41 
42 } // namespace msg
43 } // namespace events
44 } // namespace mtx
45