1 //
2 // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 #pragma once
8 
9 #include "td/telegram/MessageEntity.h"
10 #include "td/telegram/MessageId.h"
11 #include "td/telegram/ReplyMarkup.h"
12 
13 #include "td/utils/common.h"
14 #include "td/utils/StringBuilder.h"
15 
16 namespace td {
17 
18 struct MessageCopyOptions {
19   bool send_copy = false;
20   bool replace_caption = false;
21   FormattedText new_caption;
22   MessageId top_thread_message_id;
23   MessageId reply_to_message_id;
24   unique_ptr<ReplyMarkup> reply_markup;
25 
26   MessageCopyOptions() = default;
MessageCopyOptionsMessageCopyOptions27   MessageCopyOptions(bool send_copy, bool remove_caption) : send_copy(send_copy), replace_caption(remove_caption) {
28   }
29 };
30 
31 inline StringBuilder &operator<<(StringBuilder &string_builder, MessageCopyOptions copy_options) {
32   if (copy_options.send_copy) {
33     string_builder << "CopyOptions[replace_caption = " << copy_options.replace_caption;
34     if (copy_options.replace_caption) {
35       string_builder << ", new_caption = " << copy_options.new_caption;
36     }
37     if (copy_options.top_thread_message_id.is_valid()) {
38       string_builder << ", in thread of " << copy_options.top_thread_message_id;
39     }
40     if (copy_options.reply_to_message_id.is_valid()) {
41       string_builder << ", in reply to " << copy_options.reply_to_message_id;
42     }
43     if (copy_options.reply_markup != nullptr) {
44       string_builder << ", with reply markup";
45     }
46     string_builder << "]";
47   }
48   return string_builder;
49 }
50 
51 }  // namespace td
52